线上更多:查询或者更新语句导致的性能问题
查询问题比较典型的有两类:
一类是由新出现的慢查询导致的,一类是由QPS(每秒查询数)突增导致的
引发性能问题的慢查询,三种可能:
索引没有设计好;
SQL语句没写好;
MySQL选错了索引
导致慢查询的第一种可能是,索引没有设计好
通过紧急创建索引来解决;
5.6开始支持索引online DDL
从库set sql_log_bin=off,alter;主从切换;
gh-ost方案
导致慢查询的第二种可能是,语句没写好
5.7提供query_rewrite功能
mysql> insert into query_rewrite.rewrite_rules(pattern, replacement, pattern_database) values (“select * from t where id + 1 = ?”, “select * from t where id = ? - 1”, “db1”);
mysql> call query_rewrite.flush_rewrite_rules();
查询重写
导致慢查询的第三种可能,MySQL选错了索引
force index,查询重写原语句增加