使用联合索引需要注意的列顺序
比如在使用
select * from user where x=1 and y=2;
的时候,应该需要建立的索引可能是 add key(x,y)
如何确定索引的顺序
一般经验而言
可以使用
select count(distinct x)/count(x) as x_selectivity,
count(distinct y)/count(y) as x_selectivity,
count(*),
from user;
************************row1***************************
x_selectivity: 0.0001
y_selectivity: 0.0312
count(*) : 16022

在x中的选择性越高,所以可以放在第一列
alert table user add key(x,y);

另外可以在历史的慢查询中找到类似的进行优化

比如
select * from user where x=1 and y=2;

select sum(x=1),sum(y=2) from user\G;
******************row1**********************************
sum(x=1): 7992
sum(y=2): 30

y的选择性会更高一些,可以放在第一列

然后看看y=2 对应的x列的选择性
select sum(x=1) from user where y=2
******************row1**********************************
sum(x=1): 17

但是有可能mysql存在查询不公平的情况,服务器的整体性能可能更糟糕,,所以需要提取一下最差的查询进行这项的查询工作

这类工作被某些优化极客geek称为sarg。这是“可搜索参数(searchable argument)”的缩写。

最新文章

  1. 在SQL Server里我们为什么需要意向锁(Intent Locks)?
  2. 使用sencha cmd 一键生成你的应用程序代码
  3. windows Server 2008各版本区别详解
  4. FileUpload控件使用初步
  5. 蓝桥杯 algo_5 最短路 (bellman,SPFA)
  6. Part 89 to 91 Talking about pass the parameters in thread
  7. apache开启.htaccess及.htaccess的使用方法
  8. iOS开发之获取WIFI信号强度
  9. V微软S2015下载:开展Win10/Linux/iOS多平台软件
  10. 纯JSP实现用户登录注册,记事本
  11. oracle EM 如何调整界面显示的语言
  12. 手把手教你发布一个Python包
  13. iPhone手机屏幕尺寸(分辨率)
  14. 安装PHP ImageMagick笔记
  15. AS 中 Plugin for Gradle 和 Gradle 之间的版本对应关系
  16. 《学习OpenCV3》第6章课后习题
  17. linux:帮助命令help、man、info
  18. 机器学习【算法】:KNN近邻
  19. P1564 膜拜
  20. Web前端应该从哪些方面来优化网站

热门文章

  1. Python开篇
  2. 【学习】ie8支持rgba()透明度颜色
  3. Linux-问题集锦(1)
  4. C# 复制列表
  5. Linux中创建Daemon进程的三种方法
  6. 关于时钟模块DS1302的使用心得
  7. 【NOIP2015资源+题解】
  8. [maven(1)]myeclipse2014下如何配置maven
  9. 浅析Java源码之ArrayList
  10. linux学习(八)chmod、chown、umask、lsattr、chattr