摘要: 转载自:http://www.cnblogs.com/metoy/p/5545580.html 1、背景 MySQL/InnoDB的加锁分析,一直是一个比较困难的话题。我在工作过程中,经常会有同事咨询这方面的问题。同时,微博上也经常会收到MySQL锁相关的私信,让我帮助解决一些死锁的问题。本文,准备 阅读全文
posted @ 2021-09-08 15:23 da0h1 阅读(293) 评论(0) 推荐(0) 编辑
摘要: UPDATE rent_contacts SET contacts_mobile='11111' WHERE rent_unit_code in (SELECT rent_unit_code FROM rent_unit ); 第一种情况: 条件无索引 sql一执行: BEGIN; UPDATE c 阅读全文
posted @ 2021-09-08 13:37 da0h1 阅读(1084) 评论(0) 推荐(0) 编辑
摘要: 创建索引前会先排序,会影响where和order by的效率。 索引也是一张表,保存了主键和索引字段和指向实体表的记录,也是要占空间的,以索引文件的形式存储在磁盘。 增删改数据时,索引指向也要改变,所以会慢,需要频繁删改的字段不适合建索引。 索引的建立也需要不断的优化、调整。 1、创建,两种写法 C 阅读全文
posted @ 2021-09-08 10:37 da0h1 阅读(29) 评论(0) 推荐(0) 编辑
摘要: 对慢SQL优化一般可以按下面几步的思路: 1、开启慢查询日志,设置超过几秒为慢SQL,抓取慢SQL 2、通过explain对慢SQL分析(重点) 3、show profile查询SQL在Mysql服务器里的执行细节和生命周期情况(重点) 4、对数据库服务器的参数调优 1、设置慢查询 (1)设置开启: 阅读全文
posted @ 2021-09-08 10:36 da0h1 阅读(45) 评论(0) 推荐(0) 编辑
摘要: Explain是Mysql的自带查询优化器,负责select语句的优化器模块,可以模拟优化器执行SQL查询语句,从而知道Mysql是如何处理SQL的,语法也很简单:Explain + SQL 以下是通过explain查询出的几个属性 (常见性能瓶颈 —— CPU:CPU饱和一般发生在数据装入内存或从 阅读全文
posted @ 2021-09-08 10:35 da0h1 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 前文提及过可以通过explain的possible_keys、key属性判断索引是否失效,key如果为null,可能是索引没建,也可能是索引失效,下面列举一些会使索引失效的情况。 1、全值匹配:顺序、个数与索引一致 2、最佳左前缀法则:查询从索引的最左前列开始并且不跳过索引中的列,中间跳过的值,后面 阅读全文
posted @ 2021-09-08 10:32 da0h1 阅读(395) 评论(0) 推荐(0) 编辑