脚本的优化(百万级数据 求指教)
时间:2011-12-06
来源:互联网
需要写一个脚本去取test表的数据 数据量为一百三十多万条数据 用php分批次执行 像这样一次执行一万条 但是还是很慢啊 有什么更好的办法优化一下吗 这个脚本只要一执行 cpu占用率立马飙到30% 以下是sql语句
SELECT * FROM gt_long_keywords WHERE is_pin = 0 LIMIT 0,10000
SELECT * FROM gt_long_keywords WHERE is_pin = 0 LIMIT 10000,10000
SELECT * FROM gt_long_keywords WHERE is_pin = 0 LIMIT 20000,10000
SELECT * FROM gt_long_keywords WHERE is_pin = 0 LIMIT 30000,10000
SELECT * FROM gt_long_keywords WHERE is_pin = 0 LIMIT 40000,10000
SELECT * FROM gt_long_keywords WHERE is_pin = 0 LIMIT 50000,10000
SELECT * FROM gt_long_keywords WHERE is_pin = 0 LIMIT 60000,10000
SELECT * FROM gt_long_keywords WHERE is_pin = 0 LIMIT 70000,10000
SELECT * FROM gt_long_keywords WHERE is_pin = 0 LIMIT 80000,10000
SELECT * FROM gt_long_keywords WHERE is_pin = 0 LIMIT 90000,10000
SELECT * FROM gt_long_keywords WHERE is_pin = 0 LIMIT 100000,10000
求指教
SELECT * FROM gt_long_keywords WHERE is_pin = 0 LIMIT 0,10000
SELECT * FROM gt_long_keywords WHERE is_pin = 0 LIMIT 10000,10000
SELECT * FROM gt_long_keywords WHERE is_pin = 0 LIMIT 20000,10000
SELECT * FROM gt_long_keywords WHERE is_pin = 0 LIMIT 30000,10000
SELECT * FROM gt_long_keywords WHERE is_pin = 0 LIMIT 40000,10000
SELECT * FROM gt_long_keywords WHERE is_pin = 0 LIMIT 50000,10000
SELECT * FROM gt_long_keywords WHERE is_pin = 0 LIMIT 60000,10000
SELECT * FROM gt_long_keywords WHERE is_pin = 0 LIMIT 70000,10000
SELECT * FROM gt_long_keywords WHERE is_pin = 0 LIMIT 80000,10000
SELECT * FROM gt_long_keywords WHERE is_pin = 0 LIMIT 90000,10000
SELECT * FROM gt_long_keywords WHERE is_pin = 0 LIMIT 100000,10000
求指教
作者: wolf13223850700 发布时间: 2011-12-06
先把 * 干掉,行么?
作者: ferock 发布时间: 2011-12-06
select * From gt_long_keywords Where Id>=0 limit 10000
select * From gt_long_keywords Where Id>=(select Id from gt_long_keywords order by Id limit 10000,1)limit 10000
select * From gt_long_keywords Where Id>=(select Id from gt_long_keywords order by Id limit 20000,1)limit 10000
.......
//还有,最好别用* 你不会真所有的都用到吧,如果表的字段太多,就分表。
select * From gt_long_keywords Where Id>=(select Id from gt_long_keywords order by Id limit 10000,1)limit 10000
select * From gt_long_keywords Where Id>=(select Id from gt_long_keywords order by Id limit 20000,1)limit 10000
.......
//还有,最好别用* 你不会真所有的都用到吧,如果表的字段太多,就分表。
作者: daxuejianku 发布时间: 2011-12-06
PHP code
// 拿最后一条示例,注意:下面的id是代表你表中的索引id,也就是主键id,最好给id和is_pin来个索引效果还不错 select * FROM gt_long_keywords WHERE is_pin = 0 and id >= (select id from gt_long_keywords where id >= 100000 and is_pin = 0 limit 1) limit 10000
作者: kyzy_yy_pm 发布时间: 2011-12-06
每次取一万条数据并不会很慢,但是显示这一万条数据就要费点时间了
作者: xuzuning 发布时间: 2011-12-06
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28