MYSQL 调优优化
薛定谔的DBA
这个作者很懒,什么都没留下…
展开
-
MySQL EXPLAIN 独立子查询dependent subquery 优化示例
(本例创建表脚本在文章底部)对于mysql的出现的子查询语句,大部分都是不太好的,尤其 in() 的子查询语句,如下:select * from test.tabname where id in(select id from test.tabname2 where name='love');一般会认为mysql会先执行子查询,返回所有包含 test.tabname2 中所有符合条件的原创 2015-10-23 00:01:58 · 10007 阅读 · 5 评论 -
MySQL EXPLAIN 实践汇总
MySQLEXPLAIN可以显示估计查询语句执行计划,从中可以分析查询的执行情况是不是最优,这有助于我们对不使用索引的查询进行优化。EXPLAIN 对于每个查询语句返回一行信息,它列出了一个有序的表格,MySQL 处理语句的时候会读取他们。MySQL解决所有的连接都使用嵌套连接方法。这意味着MySQL读取第一张一行,然后匹配第二张表的所有行,第三张表或更多表都如此。当所有的表在处理时,MySQ原创 2015-10-16 16:42:19 · 4259 阅读 · 0 评论 -
SQLServer MySql 计数器表
例子参考《高性能MySql》第三版4.4.2 计数器表(page 135)由于mysql 没有执行成功,现在用sqlserver 模拟样本。计数器表可用于缓存一个用户的朋友数,文件下载次数等。创建表 hit_counter 用于计数,先插入一行数据,每次更新增加1,总计则求和!CREATE TABLE hit_counter( cnt int not null ) G原创 2015-10-12 21:11:33 · 1606 阅读 · 0 评论 -
MySQL 慢查询跟踪
参考:https://dev.mysql.com/doc/refman/5.7/en/slow-query-log.htmlmysql 版本:mysql-5.7.1慢查询用到的几个参数,默认值如下:+---------------------------------------+------------------------------------------+| Va...原创 2017-02-26 17:43:52 · 784 阅读 · 0 评论 -
MySQL PROFILE 跟踪语句各阶段性能开销
PROFILE 可以跟踪查询语句各个阶段 Time,IO,CPU,MEMORY 等资源使用情况,比较详细。所以系统一般不会记录太多。启用是全局的,所以每个连接都保持语句的资源使用情况。原创 2017-02-26 19:17:00 · 1804 阅读 · 0 评论 -
MySQL 死锁检查处理
正常情况下,死锁发生时,权重最小的连接将被kill并回滚。但是为了找出语句来优化,启用可启用死锁将死锁信息记录下来。#step 1:窗口一mysql> start transaction;mysql> update aa set name='aaa' where id = 1;#step 2:窗口二mysql> start transaction;mysql> ...原创 2018-03-12 16:30:22 · 11803 阅读 · 0 评论