如何把表的数据快速地查询出来
程序员文章站
2023-12-26 10:56:09
...
求助:怎么把表的数据快速地查询出来
因为自己的原因,在团购表整个表里的数据有二个字段出了错,需要把数据表里取出来,在更新到团购表里,
因为数据量比校大,我没有选择更新,
我是建了另外一张表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一半的数据而己,所以我特别着急,但是又找不到其它的方法。
各位大侠们,你们有没有什么好的方法没有啊。
------解决方案--------------------
设 id 为主键,且 id 连续
select * from tuangouA where id>= 6000000 limit 10;
------解决方案--------------------
你每次取得数据也少了点吧 每次取个10000条 循环的次数也少多了吧
------解决方案--------------------
------解决方案--------------------
数据过多 可以分表
------解决方案--------------------
又不是条件查询,慢也没办法。
------解决方案--------------------
如果你不是要选择全部的话不要用select * 用 select 字段 from 这样会select * 快不过要用到order by的比较明显
------解决方案--------------------
可以参考《高性能MySQL(第2版)中文版》如下段落
因为自己的原因,在团购表整个表里的数据有二个字段出了错,需要把数据表里取出来,在更新到团购表里,
因为数据量比校大,我没有选择更新,
我是建了另外一张表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一半的数据而己,所以我特别着急,但是又找不到其它的方法。
各位大侠们,你们有没有什么好的方法没有啊。
------解决方案--------------------
设 id 为主键,且 id 连续
select * from tuangouA where id>= 6000000 limit 10;
------解决方案--------------------
你每次取得数据也少了点吧 每次取个10000条 循环的次数也少多了吧
------解决方案--------------------
------解决方案--------------------
数据过多 可以分表
------解决方案--------------------
又不是条件查询,慢也没办法。
------解决方案--------------------
如果你不是要选择全部的话不要用select * 用 select 字段 from 这样会select * 快不过要用到order by的比较明显
------解决方案--------------------
可以参考《高性能MySQL(第2版)中文版》如下段落
相关文章
相关视频