建立inex,优化sql

     昨天下午,一直都在解决去除重复元组和数据过大sql无法执行成功的问题。网上找到了多种去除重复元组的方法,对于数据量较小时,都是可以顺利执行的。可当数据量上升到几十万条时,sql执行就直接当掉了。不断地变换新的sql语句,但问题依然没有解决。

 

    今天上午,顺利解决了问题。总结如下:

 

    1、show processlist

         查询当前sql执行的状态,我的sql语句一直停留在copying tmp table。网页http://joewalker.javaeye.com/blog/277626以及http://imysql.cn/node/15都可以参考。

 

    2、explain

         这个命令很有用,可以分析sql执行时使用的索引信息。我的sql分析后,出现了Using filesort ,难怪速度很慢。网上还有人把这个问题当成bug提交给mysql的。http://blog.csdn.net/yangyu112654374/archive/2009/06/08/4251624.aspx里有解决方法,讲得很详细。其实就是把order by,group by和join所在的属性加上索引,这样sql执行的速度就会加快。

 

 

    问题总算解决了,下午可以开始进入代码部分了。另外,dblp.xml(2002-10)中,inproceedings里约有10万条左右数据的会议信息,在proceedings里找不到。我只好从inproceedings里提取额外的信息,存入了conference的表中,否则将损失10万条数据。不知道在最新的dblp.xml里,数据质量有没有提高。

 

  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值