免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
1234下一页
最近访问板块 发新帖
查看: 11400 | 回复: 39
打印 上一主题 下一主题

虚心求教,mysql 查询优化方案,难道无解? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-12-01 13:07 |只看该作者 |倒序浏览
表结构如下
CREATE TABLE `test` (                        
                       `userid` bigint(20) unsigned NOT NULL DEFAULT '0',         
                       `entryid` int(10) unsigned NOT NULL DEFAULT '0',      
                       `inverse` bigint(20) NOT NULL DEFAULT '0',           
                     ) ENGINE=InnoDB DEFAULT CHARSET=utf8

查询语句如下

select * from test where userid in ( 1, 2) order by inverse asc

如何达到最优化的查询效果

如果增加索引如下

PRIMARY KEY (`userid`,`entryid`,`inverse`)

explain 时会有filesort, 结果数据集较大是filesort对系统的压力比较大

如果增加索引如下

PRIMARY KEY (`inverse`,`userid`,`entryid`)

数据查询是就会进行全表扫描

对于这种情况,有没有好的办法解决,解决方案不局限于mysql本身

阶段总结:http://bbs.chinaunix.net/thread-1323693-3-1.html

[ 本帖最后由 meizhe1981 于 2008-12-2 10:59 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2008-12-01 13:10 |只看该作者
关注

论坛徽章:
0
3 [报告]
发表于 2008-12-01 13:29 |只看该作者
莫非CU能人都去云游?

论坛徽章:
0
4 [报告]
发表于 2008-12-01 13:37 |只看该作者
为什么建立这样的主键PRIMARY KEY (`userid`,`entryid`,`inverse`)?
在userid建主键,在inverse建索引。

论坛徽章:
0
5 [报告]
发表于 2008-12-01 13:43 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
6 [报告]
发表于 2008-12-01 13:47 |只看该作者
需要explain的结果

论坛徽章:
0
7 [报告]
发表于 2008-12-01 13:59 |只看该作者
其实我很想知道你的应用需求,这个表很简单,sql也很简单,通过修改索引和sql的话性能提高有限!
userid ,inverse的联合索引只能针对

select * from test where userid=1, order by inverse asc
有效


select * from test where userid in ( 1, 2) order by inverse asc
肯定是有filesort的
除非我们用其他变通的方法

论坛徽章:
0
8 [报告]
发表于 2008-12-01 14:00 |只看该作者
lz的这条sql没有limit吗
我在这里抛砖引玉了

论坛徽章:
0
9 [报告]
发表于 2008-12-01 14:03 |只看该作者
有limit,是呀,按照sql的理论这条语句肯定是有filesort, 有没有非mysql的结局方案? 如果用缓存的话效果也不是很好,数据会复制很多份

我这个应用是这样的,取得某个用户好友的entryid,这样描述大家应该比较清楚了吧?

[ 本帖最后由 meizhe1981 于 2008-12-1 14:38 编辑 ]

论坛徽章:
0
10 [报告]
发表于 2008-12-01 14:15 |只看该作者
原帖由 meizhe1981 于 2008-12-1 14:03 发表
没有limit,是呀,按照sql的理论这条语句肯定是有filesort, 有没有非mysql的结局方案? 如果用缓存的话效果也不是很好,数据会复制很多份

我这个应用是这样的,取得某个用户好友的entryid,这样描述大家应该比 ...

我不清楚,不知道别人怎么想,如果涉及的公司内容,可以发站内信告之
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP