在
https://www.percona.com/blog/2015/04/27/indexing-101-optimizing-mysql-queries-on-a-single-table/
中,提到了在mysql中,如果在sql语句中有各类=,>等符号,应该如何选择索引做了简单的小结
1) SELECT c1, c2 FROM t WHERE c = 100
当然建立(c, c1, c2)索引最高效了
2) 多个=的情况
SELECT * FROM t WHERE c = 100 and d = 'xyz'
索引应该是(c,d)或者(d,c)
3) 有相等也有不等的情况
SELECT * FROM t WHERE c > 100 and d = 'xyz'
这个时候要先(d,c),先选择等于的D在索引顺序前更好
4) 多个相等,不等并存
SELECT * FROM t WHERE c > 100 and b < 10 and d = 'xyz'
这个时候,用(d,c)还是(d,b)要看具体情况
5) 有相等并order的情况
SELECT * FROM t WHERE c = 100 and d = 'xyz' ORDER BY b
原则是首先过滤,再排序,
所以选择建立(d,c,b)(c,d,b)都是不错的选择
6)有不等和order情况
SELECT * FROM t WHERE c > 100 and d = 'xyz' ORDER BY b
这个时候看具体情况:
(d,b),(d,c)
分享到:
相关推荐
《Effective MySQL之SQL语句最优化》是由MySQL专家Ronald Bradford撰著,书 中提供了很多可以用于改进数据库和应用程序性能的最佳实践技巧,并对这些技巧 做了详细的解释。本书希望能够通过一步步详细介绍SQL优化...
《Effective MySQL之SQL语句最优化》提供了很多可以用于改进数据库和应用程序性能的最佳实践技巧,并对这些技巧做了详细的解释。《Effective MySQL之SQL语句最优化》希望能够通过一步步详细介绍SQL优化的方法,帮助...
mysql的优化 数据库(表)设计合理 我们的表设计要符合3NF 3范式(规范的模式) , 有时我们需要适当的逆范式 sql语句的优化(索引,常用小技巧.) 数据的配置(缓存设大) 适当硬件配置和操作系统 (读写分离.)
这是我学习mysql时顺便整理的sql语句,从创建表,修饰表到增删改查、视图、存储过程、触发器、索引、函数、常用的循环、判断。
今天小编就为大家分享一篇关于Mysql中SQL语句不使用索引的情况,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
适合初学者学习的MySQL数据库语句练习文档,内容还是比较全的 1、表操作 2、视图操作(虚表) 3、索引操作 4、数据库模式操作 5、单表操作 6、多表操作 7、表达式与函数的使用 8、相关子查询 9、关系代数运算 10、...
下面介绍MySQL中如何查询慢的SQL语句 一、MySQL数据库有几个配置选项可以帮助我们及时捕获低效SQL语句 1,slow_query_log 这个参数设置为ON,可以捕获执行时间超过一定数值的SQL语句。 2,long_query_time 当S
在一些情况下,MySQL可以使用索引优化DISTINCT操作,但需要活学活用.本文涉及一个不能利用索引完成DISTINCT操作的实例. 实例1 使用索引优化DISTINCT操作 create table m11 (a int, b int, c int, d int, primary ...
插入、更新、删除、索引、过程和函数、视图、触发器、备份与还原
本文实例讲述了MySQL常用的建表、添加字段、修改字段、添加索引SQL语句写法。分享给大家供大家参考,具体如下: 建表: DROP TABLE IF EXISTS bulletin; CREATE TABLE bulletin( id INT NOT NULL PRIMARY KEY AUTO...
在SQL语句中使用COLLATE<br>10.3.9. COLLATE子句优先<br>10.3.10. BINARY操作符<br>10.3.11. 校对确定较为复杂的一些特殊情况<br>10.3.12. 校对必须适合字符集<br>10.3.13. 校对效果的示例<br>10.4. 字符集支持影响...
mysql的explain分析sql语句性能(慢查询和加没加索引)
今天我们分享一些 分析mysql表读写、索引等等操作的sql语句。 闲话不多说,直接上代码: 反映表的读写压力 SELECT file_name AS file, count_read, sum_number_of_bytes_read AS total_read, count_write, sum_...
数据库和表的创建和管理 ...Navicat中编写SQL语句创建数据表 Navicat中编写SQL语句修改数据表 Navicat中编写SQL语句删除数据表 表的创建和管理-图形化 navicat图形化创建和管理表 navicat编写sql语句创建和管理表 小结
分析Mysql表读写、索引等操作的sql语句效率优化问题
1. SQL优化 1 1.1. 优化实战 1 1.1.1. 策略1.尽量全值匹配 1 1.1.2. 策略2.最佳左前缀法则 2 1.1.3. 策略3.不在索引列上做任何操作 2 1.1.4. 策略4.范围条件放最后 3 1.1.5. 策略5.覆盖索引尽量用 3 1.1.6. 策略6.不...
1、添加索引sql语句 2、查看MySQL中建立的索引是否生效 3、索引失效场景(补充:以下在实际应用中并不会一定导致索引失效,基于mysql不同版本的优化规则) 3.1 在联合索引的场景下,查询条件不满足最左匹配原则 3.2 ...
面试高频题目,一条SQL语句为什么执行这么慢? 这其中涉及的知识也是各种各样,今天就让我们来完全剖析这个问题。 一条SQL语句为什么执行这么慢?一、执行偶尔变慢1. 刷脏页,写磁盘2. 还在等锁3. 回滚日志过多二、...