mysql索引可以自动使用,同时用户也可以强制使用。MYSQL在创建索引后对索引的使用方式分为两种:一种是由数据库的查询优化器自动判断是否使用;另一种是用户可在写SQL语句时强制使用索引。
MYSQL在创建索引后对索引的使用方式分为两种:其一,由数据库的查询优化器自动判断是否使用索引;其二,用户可在写SQL语句时强制使用索引。
(推荐教程:mysql视频教程)
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索引是自动使用的么的详细内容,更多请关注【创想鸟】其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。
发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/1786214.html