|
原帖由 mysqldbd 于 2011-4-20 09:49 发表 ![]()
有一个表A 哟字段c1,c2,c3,c4,c5、、、、、、c14,c15、、、、、,总数据量在1000W左右。MySQL版本是5.5.8,存储引擎是Innodb。
经常作为查询条件的有c1,c2,c5,c14,c15,有可能是其中的3个字段作为查询条件,也有可能是4个字段作为查询条件,也有可能是5个字段作为查询条件。
问下,这样的业务场景,如何建立索引?
我初步的想法是
1,第一个索引:按照c1,c2,c5,c14,c15的顺序建立索引,在写sql的时候,后面的where条件是 where c1=pv and c2=pv and c5=pv and c14=pv anc c15=pv ,pv为条件值。
2,第二个索引:按照c2,c5,c15的顺序建立索引,在写sql的时候,后面的where条件是:where c2=pv and c5=pv and c15=pv ,pv为条件值。
3,第三个索引:按照c1,c5,c14,c15的顺序建立索引,在写sql的时候,后面的where条件是 where c1=pv and c5=pv and c14=pv anc c15=pv ,pv为条件值。
不知道我的实现方案是不是比较恰当,大家给点建议,谢谢!
第一个索引一定是不需要的,
用 c5, c15, c1, c14能够同时给1、3两个语句使用。
至于是否需要索引2,取决于c5、c15的过滤效果。 |
|