mysql索引abc,a=1 and c=2是否可使用索引_sql联合索引
在一次查询中,MySQL只能使用一个索引。
在真实项目中,SQL语句中的WHERE子句里通常会包含多个查询条件还会有排序、分组等。
若表中索引过多,会影响INSERT及UPDATE性能,简单说就是会影响数据写入性能。因为更新数据的同时,也要同时更新索引。
最实际的好处当然是查询速度快,性能好。
MYSQL中常用的强制性操作(例如强制索引)
https://www.jb51.net/article/49807.htm
SELECT * FROM TABLE1 FORCE INDEX (FIELD1) …
建索引参考的原则 :
一个表有3列 ,a,b,c 说出3种索引,能够在查询的时候用到 a,b,c,bc,ac,abc .
abc (a,bc,abc)
bc (c,bc)
ca (c)
用 查询bc 的时候用不到abc和ac 索引。
使用联合索引应该注意:
MySQL使用联合索引只能使用左侧的部分,例如INDEX(a,b,c),当条件为a或a,b或a,b,c时都可以使用索引,但是当条件为b,c时将不会使用索引。这好比一本先根据姓,再根据名进行排序的电话簿,当查找的时候有姓的条件,效率会比没有任何条件高;如果在姓的基础上还有名的条件,效率会更高;但若只有名的条件,电话簿将不起作用。离散度更高的索引应该放在联合索引的前面,因为离散度高索引的可选择性高。考虑一种极端的情况,数据表中有100条记录,若INDEX(a,b)中a只有两种情况,而b有100种情况。这样对于查询唯一记录a = …,b = …时,先遍历全部索引
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
相关文章
- MySQL查询结果导出至Excel:一步到位(mysql查询结果导出excel)
- 添加MySQL表主键:一步完成关系数据库数据安全(mysql表加主键)
- Mysql自动修复:令人惊喜的数据库服务(mysql自动修复)
- 性能的优化优化MySQL索引实现排序性能的提升(mysql索引排序)
- 解决MySQL查询重复值的实践(mysql查询重复值)
- MySQL查找提升系统性能的慢SQL(mysql查看慢sql)
- MySQL 建索引慢:深入剖析其中的原因(mysql建索引慢)
- MySQL使用唯一索引的最佳实践(mysql的唯一索引语句)
- 索引深入Mysql:删除唯一索引的技巧(mysql删除唯一)
- MySQL查看表的索引:快速简易指南(mysql查看表的索引)
- 与应用MySQL索引:结构与应用探究(mysql索引的结构)
- 指引成功:MySQL建表加索引技巧(mysql建表时创建索引)
- MySQL索引过长的解决方法:缩短索引长度,使用前缀索引或哈希索引。(mysql索引太长)
- MySQL索引优化:解决大表查询效率问题(mysql大表建索引)
- MySQL 中文查询:使用中文关键字进行 SQL 数据库查询的方法(mysql中文查询)
- MySQL 查库:了解数据库信息的必备技能(mysql查库)
- mysql比较SQL Server与MySQL性能之殊途同归(sqlserver vs)
- MySQL的绑定变量:提高查询性能,减少安全风险(mysql的绑定变量)
- 式处理MySQL实现的不等式查询处理技术(mysql 不等)
- MySQL中的B索引提高数据库查询效率的重要工具(mysql中b 索引)
- MySQL搭建个人博客从零开始到完美书写(mysql个人博客书)
- MySQL中Btree索引结构的高效实现(btree高度mysql)
- MySQL 2亿数据大规模管理与优化(2亿数据mysql)
- 如何在MySQL中删除索引文件(mysql中删除索引文件)
- MySQL自连接学会使用这个神奇的SQL操作(mysql z自连接)
- MySQL如何不去重复数据(mysql 不去重复数据)