的数据库故障,影响线上业务。经过排查后,确定原因是SQL在执行时,MySQL优化器选择了错误的索引(不应该 ...
前端时间跟一个DB相关的项目,alanc反馈有一个查询,使用索引比不使用索引慢很多倍,有点毁三观。所以跟进了一下,用explain,看了看 个查询不同的结果。 不用索引的查询的时候结果如下,实际查询中速度比较块。 mysql gt explain select from rosterusers limit , id select type table type possible keys key ...
2013-05-18 22:33 3 2049 推荐指数:
的数据库故障,影响线上业务。经过排查后,确定原因是SQL在执行时,MySQL优化器选择了错误的索引(不应该 ...
背景 最近一个后台功能列表,业务人员反馈查询和导出速度非常慢。 通过定位发现列表查询和数据导出都是使用的同样的一个连表查询SQL。 这个功能刚上线不久,起初查询和导出速度都是蛮快的,把这个SQL放到测试环境也是挺快的。 对比了一下测试环境和生产环境相关表结构都是一样的,之后我们把目光放在 ...
灵魂3连问: 什么是前缀索引? 前缀索引也叫局部索引,比如给身份证的前 10 位添加索引,类似这种给某列部分信息添加索引的方式叫做前缀索引。 为什么要用前缀索引? 前缀索引能有效减小索引文件的大小,让每个索引页可以保存更多的索引值,从而提高了索引查询的速度。但前缀索引也有它的缺点,不能在 ...
结论:添加索引时,如果有对该表的慢查询,会导致索引添加延时等待 添加索引语句:alter table tb_name add index idx_xx(col_name); 执行添加索引的SQL: 通过show processlist; 发现有锁 ...
mysql 查询所有碎片语句 SHOW TABLE STATUS LIKE 'logs' ---------logs是带有索引的表名称 如果Data_free大于0 表示有索引碎片产生 可以使用如下语句清理碎片 OPTIMIZE TABLE `logs` -------logs ...
背景知识:MySQL有三种锁的级别:页级、表级、行级。 MyISAM和MEMORY存储引擎采用的是表级锁(table-level locking);BDB存储引擎采用的是页面锁(page-level locking),但也支持表级锁;InnoDB存储引擎既支持行级锁(row-level ...
1. 开启慢查询日志方式: 可以更改数据库配置文件 ,例如在ubuntu下配置文件位置 /etc/mysql/mysql.conf.d/mysqld.cnf 增加这三项 #记录慢查询日志slow_query_log = ONslow_query_log_file = /var/log ...
经常有同学问我,我的一个SQL语句使用了索引,为什么还是会进入到慢查询之中呢?今天我们就从这个问题开始来聊一聊索引和慢查询。 另外插入一个题外话,个人认为团队要合理的使用ORM,可以参考我的另外一篇<ORM的权衡和抉择>。合理利用的是ORM在面向对象和写操作方面的优势,避免 ...