mysql方面
有哪些优化mysql的方式呢?
-
当然你的sql语句你要看是否可以优化。
-
开启msyql慢查询日志。
-
explain 分析。
-
开启查询缓存。(这个得分场景,查多更少,比较好。不然缓存频繁失效也浪费性能)
explain都关注哪些字段?
这个问题,自行百度就ok。
还有就是问你某个字段的哪个值?这个你也自行百度。
什么是重点呢?比如rows的值。对吧。你要想到rows是不精确的统计。可以用analyze table 去优化。还有就是怎么会造成不准确。
另外extra 中的using filesort。到底怎么排序的。是否可以规避外存排序。
还有using tempory table ,用到内存表。等等
这些是重点。什么字段?什么值?是纯记忆。
怎么查看查询优化器生成执行计划的过程?
# 1. 打开optimizer trace功能 (默认情况下它是关闭的):
SET optimizer_trace="enabled=on";
# 2. 这里输入你自己的查询语句
SELECT ...;
# 3. 从OPTIMIZER_TRACE表中查看上一个查询的优化过程
SELECT * FROM information_schema.OPTIMIZER_TRACE;
# 4. 可能你还要观察其他语句执行的优化过程,重复上边的第2、3步
...
# 5. 当你停止查看语句的优化过程时,把optimizer trace功能关闭
SET optimizer_trace="enabled=off";