mysql 添加索引后 在查询的时候是mysql就自动从索引里面查询了。还是查询的时候有单 独的参数查询索引?
2017-03-10 10:44
302 查看
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 添加索引后 在查询的时候是mysql就自动从索引里面查询了。还是查询的时候有单 独的参数查询索引?
- mysql 添加索引后 在查询的时候是mysql就自动从索引里面查询了。还是查询的时候有单 独的参数查询索引?
- mysql在查询结果中自动添加序号字段列
- 解决mysql的in条件中参数是带引号的字符串的时候查询失效
- MySQL 查询数据表里面时间字段为今天添加的计数
- mysql近500w条数据建立索引后查询速度还是提升很多
- php bug查询数据:数据库请求数据,关联数组会自动添加索引 重复一遍数据
- 有关 MySQL InnoDB 在索引中自动添加主键的问题
- QScrollArea里面添加控件的时候,自动滚到到最后
- 【MySQL】关于MySQL添加索引后提升的查询效率也很少的解决办法
- Photon_在查询的时候添加参数_004
- MySQL查询优化一例---自动利用索引进行优化
- 测试mysql查询中参数整形和字符串类型错误索引使用情况
- mysql 字段类型对查询效率的影响实验及小范围取值字段不宜添加索引
- MySQL查询效率优化--添加索引命令
- Jquery如何序列化form表单数据为JSON对象 C# ADO.NET中设置Like模糊查询的参数 从客户端出现小于等于公式符号引发检测到有潜在危险的Request.Form 值 jquery调用iframe里面的方法 Js根据Ip地址自动判断是哪个城市 【我们一起写框架】MVVM的WPF框架(三)—数据控件 设计模式之简单工厂模式(C#语言描述)
- MySQL模糊查询全文索引
- 关于如何在查询结果中添加自动编号
- MySQL里面的子查询实例
- 优化MySQL查询的Limit参数