求助:怎么把表的数据快速地查询出来

xiachao2008 2012-07-19 11:43:36
因为自己的原因,在团购表整个表里的数据有二个字段出了错,需要把数据表里取出来,在更新到团购表里,
因为数据量比校大,我没有选择更新,
我是建了另外一张表B,我用程序控制这样的SQL循环整个团购表A
select * from tuangouA limit 0,600;
select * from tuangouA limit 600,600;
select * from tuangouA limit 1200,600;

在初使的候,速度还挺快的,但是当基数到达


select * from tuangouA limit 6000000,10;

我取10条数据,都要4秒多钟, 以这样的速度下去,不知道要运行到什么时候啊,6百万刚好我表A一半的数据而己,所以我特别着急,但是又找不到其它的方法。
各位大侠们,你们有没有什么好的方法没有啊。

...全文
138 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
salterping 2012-07-20
  • 打赏
  • 举报
回复
如果你不是要选择全部的话不要用select * 用 select 字段 from 这样会select * 快不过要用到order by的比较明显
qq120848369 2012-07-20
  • 打赏
  • 举报
回复
又不是条件查询,慢也没办法。
森之树 2012-07-20
  • 打赏
  • 举报
回复
数据过多 可以分表
ycnxz 2012-07-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

设 id 为主键,且 id 连续
select * from tuangouA where id>= 6000000 limit 10;
[/Quote]

1楼的sql语句本来就有问题 主键有连续 怎么可能又where中有主键上的相等关系又limit
应该是
设 id 为主键,且 id 连续
select * from tuangouA order by id limit 6000000,10000;
这样吧
ycnxz 2012-07-20
  • 打赏
  • 举报
回复
你每次取得数据也少了点吧 每次取个10000条 循环的次数也少多了吧
xuzuning 2012-07-20
  • 打赏
  • 举报
回复
设 id 为主键,且 id 连续
select * from tuangouA where id>= 6000000 limit 10;
ycnxz 2012-07-20
  • 打赏
  • 举报
回复
可以参考《高性能MySQL(第2版)中文版》如下段落

4,250

社区成员

发帖
与我相关
我的任务
社区描述
国内外优秀PHP框架讨论学习
社区管理员
  • Framework
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧