满意答案
llt1711
2014.06.20
采纳率:49% 等级:9
已帮助:614人
MYSQL创建索引对索引使用方式分两种:
1 由数据库查询优化器自动判断否使用索引;
2 用户写SQL语句时强制使用索引
下面两种索引使用方式进行说明
第种自动使用索引数据库收查询语句会查看where语句面查询条件同时查看表上面有哪些索引根据查询条件和索引进行匹配
查询条件和索引匹配包括查询字段与索引字段匹配和查询类型和索引类型匹配前者好理解查询条件属性上要建有索引者则说查询条件必须能够使用索引比等值判断和范围查询使用B+树索引而hash索引只能适用于等值判断
找与查询条件匹配索引进行代价估计来决定否使用索引代价估计主要根据要访问数量般来说通过索引访问记录数量占全表记录数量15%上则会使用索引而使用全表扫描因此时使用索引代价更大大多数情况下使用索引会提高效率
经过优化器判断终会决定否使用索引
第二种强制使用索引主要通过SQL语句实现
select * from table force index(PRI) limit 2;(强制使用主键)
select * from table force index(ziduan1_index) limit 2;(强制使用索引"ziduan1_index")
select * from table force index(PRI,ziduan1_index) limit 2;(强制使用索引"PRI和ziduan1_index")
也禁止索引使用
select * from table ignore index(PRI) limit 2;(禁止使用主键)
select * from table ignore index(ziduan1_index) limit 2;(禁止使用索引"ziduan1_index")
select * from table ignore index(PRI,ziduan1_index) limit 2;(禁止使用索引"PRI,ziduan1_index")
00分享举报