mysql索引是自动使用的么
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索引是自动使用的么的详细内容,更多请关注其它相关文章!
上一篇: webpack的优化策略
下一篇: mysql多久可以学会?
推荐阅读
-
MySQL中什么是禁用唯一性检查?唯一性检查,唯一性约束条件,唯一性索引之间的区别是什么?
-
MySQL数据库几种常用的索引类型使用介绍
-
深入探讨:PHP使用数据库永久连接方式操作MySQL的是与非
-
mysql中关于Myisam_recover自动修复的使用方法_MySQL
-
MYSQL中的中文模糊搜索除了使用全文索引外还有什么办法呢?
-
一直以为mysql在order条件建立索引是有效的,发现没效果.
-
MySQL索引背后的之使用策略及优化(高性能索引策略)
-
MySQL的源码安装及使用UDFs进行数据自动更新的教程
-
详解mysql建立索引的使用办法及优缺点分析
-
mysql中索引使用不当速度比没加索引还慢的测试