程序员

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

上一篇下一篇

猜你喜欢

热点阅读