您的位置:首页 > 数据库 > MySQL

MySQL的索引 之组合索引使用

2013-12-13 15:21 399 查看
MySQL的索引 之组合索引使用
mysql中组合索引(联合索引)的使用
对于查询select * fromtable_name where uid=xx uidnd gpdm=xx 的形式
可以使用(uid,gpdm)这样子的组合索引,对于查询 select * fromtable_name where uid=xx 的形式
也可以使用(uid,gpdm)这样子的组合索引
但是对于查询select *from table_name where gpdm=xx 的形式
不可以使用(uid,gpdm) 这样子的组合索引,除了sql语句中有统计操作之外。
例如 select count(*) fromtable_name where gpdm=xxx and …gpdm=xxx;







possible_keys为NULL,但是key却为userid_2联合索引。using index 表示使用覆盖索引。

覆盖索引的定义:
官方解释




即:一个包括所有要检索列的索引,不用再通过索引值去检索全部表数据,通过索引就可以直接取到数据。
Innodb引擎中的辅助索引(即第二索引) 包含了主键列信息。即




例如:






userid_2为组合索引(userid,buy_duidte)
userid为索引userid
可以看到key键中直接选用了userid_2,并且type=ref. extruid中using index ,using where

如果强制使用userid索引






可以看到extruid中使用了using filesort, key为userid
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息