SHOW VARIABLES LIKE '%query_cache%'; 查询当前是否开启查询缓存
show status like 'qcache%'; 当前查询缓存情况
MySQL使用基于成本的优化器,它尝试预测一个查询使用某种执行计划时的成本,并选择其中成本最小的一个。在MySQL可以通过查询当前会话的last_query_cost的值来得到其计算当前查询的成本。
Mysql代码
- mysql> select * from t_message limit 10;
- ...省略结果集
- mysql> show status like 'last_query_cost';
- +-----------------+-------------+
- | Variable_name | Value |
- +-----------------+-------------+
- | Last_query_cost | 6391.799000 |
- +-----------------+-------------+
示例中的结果表示优化器认为大概需要做6391个数据页的随机查找才能完成上面的查询。这个结果是根据一些列的统计信息计算得来的,这些统计信息包括:每张表或者索引的页面个数、索引的基数、索引和数据行的长度、索引的分布情况等等。
性能优化建议
请等等,还有一句忠告要先送给你:不要听信你看到的关于优化的“绝对真理”,包括本文所讨论的内容,而应该是在实际的业务场景下通过测试来验证你关于执行计划以及响应时间的假设。
EXPLAIN
https://www.cnblogs.com/magialmoon/archive/2013/11/23/3439042.html