- 论坛徽章:
- 0
|
表结构如下
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 编辑 ] |
|