免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: 小木虫子

2G的myisam表,查询慢,如何优化?【已解决】 [复制链接]

论坛徽章:
9
每日论坛发贴之星
日期:2016-01-04 06:20:00数据库技术版块每日发帖之星
日期:2016-01-04 06:20:00每日论坛发贴之星
日期:2016-01-04 06:20:00数据库技术版块每日发帖之星
日期:2016-01-04 06:20:00IT运维版块每日发帖之星
日期:2016-01-04 06:20:00IT运维版块每日发帖之星
日期:2016-01-04 06:20:00综合交流区版块每日发帖之星
日期:2016-01-04 06:20:00综合交流区版块每日发帖之星
日期:2016-01-04 06:20:00数据库技术版块每周发帖之星
日期:2016-03-07 16:30:25
发表于 2009-11-03 15:28 |显示全部楼层
原帖由 小木虫子 于 2009-11-3 15:26 发表
mysql> SELECT uid FROM pw_gbook WHERE uid='48' ORDER BY postdate DESC LIMIT 1275480,20;
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id:    1 ...


-----删除-----又写错了。。。

[ 本帖最后由 cenalulu 于 2009-11-3 15:35 编辑 ]

论坛徽章:
0
发表于 2009-11-03 17:39 |显示全部楼层

论坛徽章:
0
发表于 2009-11-03 17:40 |显示全部楼层
SELECT uid FROM pw_gbook WHERE uid='48' ORDER BY id DESC LIMIT 1275480,20;

这样看看,还有explain,对了把查询时间也说下

[ 本帖最后由 langwang0070 于 2009-11-3 17:44 编辑 ]

论坛徽章:
9
每日论坛发贴之星
日期:2016-01-04 06:20:00数据库技术版块每日发帖之星
日期:2016-01-04 06:20:00每日论坛发贴之星
日期:2016-01-04 06:20:00数据库技术版块每日发帖之星
日期:2016-01-04 06:20:00IT运维版块每日发帖之星
日期:2016-01-04 06:20:00IT运维版块每日发帖之星
日期:2016-01-04 06:20:00综合交流区版块每日发帖之星
日期:2016-01-04 06:20:00综合交流区版块每日发帖之星
日期:2016-01-04 06:20:00数据库技术版块每周发帖之星
日期:2016-03-07 16:30:25
发表于 2009-11-03 17:54 |显示全部楼层
建一个 的三键索引,
然后看下这句的执行计划,extra有没有using index的提示
explain SELECT uid FROM pw_gbook WHERE uid='48' ORDER BY postdate DESC LIMIT 1275480,20;
如果没有那么 把三键索引的顺序换一下id,uid,postdate,


查询的话,用下面这句,应该就ok了
select * from
pw_gbook as pw
join
(SELECT id FROM pw_gbook WHERE uid='48' ORDER BY postdate DESC LIMIT 1275480,20) as tmp
on pw.id=tmp.id;

论坛徽章:
0
发表于 2009-11-03 23:59 |显示全部楼层
figure out it io bound or cpu bound with vimstat iostat ,then explain it ,profiling it

论坛徽章:
0
发表于 2009-11-04 10:52 |显示全部楼层
2颗4核的CPU,都是最好的,硬盘RAID10,

放心,硬件都是最好的。


那个我测试了,不行。。

我觉得分区才能解决瓶颈。

论坛徽章:
0
发表于 2009-11-04 11:11 |显示全部楼层
哥们,你要是优化了,记得拿出来共享一下。

我给你提个醒:

问题不在你这,哪里有这么写应用的,一个UID 48居然对应这么多post,UID的过滤效果实在太小,48是谁,是管理员,还是匿名用户?; 100w条以上的记录进行索引排序,大部分时间肯定要花在sending data上面。
另外,这个应用也太强大了,还可以翻页翻到这么后面。


分区是可以尝试,不过针对这个应用,效果应该是负面的。

论坛徽章:
0
发表于 2009-11-04 12:59 |显示全部楼层
phpwind的留言板。

论坛徽章:
0
发表于 2009-11-04 14:53 |显示全部楼层
虫虫:
    你会写PHP吗?如果会还有救。如果不会就难办了。

说一下原理:
    LIMIT 1275480,20   这行是根据条件查询1275500只要后面20行。不管怎么样都慢。
这也是简单的分页技术。

至于怎么改,你可以看看需求。去年曾做过一个PHPwind,那分页也很垃圾。需要改一下些东西。比较麻烦,这里不说了。有的技术也不通用。

简单办法:
   换一个强劲的机器:)

论坛徽章:
9
每日论坛发贴之星
日期:2016-01-04 06:20:00数据库技术版块每日发帖之星
日期:2016-01-04 06:20:00每日论坛发贴之星
日期:2016-01-04 06:20:00数据库技术版块每日发帖之星
日期:2016-01-04 06:20:00IT运维版块每日发帖之星
日期:2016-01-04 06:20:00IT运维版块每日发帖之星
日期:2016-01-04 06:20:00综合交流区版块每日发帖之星
日期:2016-01-04 06:20:00综合交流区版块每日发帖之星
日期:2016-01-04 06:20:00数据库技术版块每周发帖之星
日期:2016-03-07 16:30:25
发表于 2009-11-04 16:13 |显示全部楼层
感觉他这句语句的作用是取到最新的20条评论,由于评论很多查到1275480多条了。。。。
反过来说。。。直接按时间逆序排列,取最前面的20条也能打到效果么。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP