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")
以上就是mysql索引是自动运用吗?的细致内容,更多请关注ki4网别的相干文章!