Sql在Mysql的执行
昨天解析了dblp.xml,存入数据库,生成了若干张临时表。今天上午,对这些临时表进行处理,然后存入实验设计的表中。数据库的数据量比较大,50多M,80多万条记录。因而执行sql时,就遇到了很多问题。
1、去除重复tuple
原始dblp.xml中,同一论文的存在几个完全相同的<cite>,所以要对数据库中的数据进行处理。网上搜到一段代码:
1) 查询某些属性相同tuple的方法
select * from vitae a where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)
2)删除某些属性相同tuple的方法
delete from vitae a where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)
and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)
我先执行了1,是在一个有79,000条记录的表上执行的。数分钟后(10分钟以上),结果顺利出来。然后我在记录数为212,273的表上执行2,很久之后还没有出结果。于是我又执行了1),放在532,555条记录的表上。这下情况不妙,电脑直接死机了,cpu100%疯狂地运转着。正常关机都不行,最后只好强行按下了关机键。
重启后,我不死心,在532,555条记录的表执行1。1.5小时过去了,还没有结果出现。
看来下午要好好研究一下sql在mysql的执行效率了。
2、select into
Mysql中不支持select into table的语法,但可以用以下2个语句替代。
1)create table table_new (select * from table_old);
2)insert into table_new(name,password...) select table_old.name, table_old.password from table_old where
table_old.name="ct";
相关文档:
Microsoft SQL Server
2008和Microsoft数据平台为开发人员提供了一个综合的编程架构,用于创建针对移动设备、桌面电脑、Web服务器,和企业服务器的基于数据的解
决方案。这个数据编程环境将数据访问和管理集成到一个应用程序的业务逻辑中,从而提高了开发人员的生产力。它提供了一个用于对异构数据源的数据访问和管理
的 ......
1.关键字
auto_increment
2.自增用法
例:
CREATE TABLE animals ( id mediumint not null auto_increment,
name char(30) not null,
primary key (id));
3.关于自增
Q:怎么获得当前的自增的最大值?
A:select @@identity
Q:怎么获得table的当前自增最大值?
A:select max(i ......
使用SQL Server导入/导出Excel,包含部分错误信息处理方法;
操作手记,留此备查
/*
导入
*/
--错误信息如下时:
--Msg 15281, Level 16, State 1, Line 2
--SQL Server blocked access to STATEMENT 'OpenRowset/OpenDatasource' of component 'Ad Hoc Distributed Queries' because this component is turned off as ......
通过v$sqlarea,v$sql查询最占用资源的查询 收藏
引用:http://blog.chinaunix.net/u/3866/showart_396335.html
-----------------------
v$sqlarea,v$sql
-----------------------
从V$SQLAREA中查询最占用资源的查询
select b.username username,a.disk_reads reads,
a.executions exec,a ......