MySQL -- 慢查询
2019-03-26 本文已影响0人
未_来_可_期
慢查询
慢查询
索引没有设计好
古老方案
1. Online DDL–ALTER TABLE
2. 主库A,备库B
3. 在备库B上执行SET sql_log_bin=OFF(不写binlog),ALTER TABLE加上索引
4. 执行主备切换,变成主库B,备库A
5. 在备库A上执行SET sql_log_bin=OFF(不写binlog),ALTER TABLE加上索引
工具
gh-ost
语句没写好
1. -- Since MySQL 5.7
2. INSERT INTO query_rewrite.rewrite_rules (pattern, replacement, pattern_database)
3. VALUES ("SELECT * FROM t WHERE id + 1 = ?", "SELECT * FROM t WHERE id = ? - 1", "test");
4. CALL query_rewrite.flush_rewrite_rules();
MySQL选错索引
1. FORCE INDEX
2. query_rewrite+FORCE INDEX
预先发现问题
1. 测试环境配置:slow_query_log=ON+long_query_time=0
2. SQL Review,留意Rows_examined是否与预期的一致
3. 工具:pt-query-digest