Bootstrap

java系统性能优化之mysql数据库优化

java开发的应用系统经常面临系统响应时间过长的情况,可能的原因有很多方面,比如网络延迟、代码逻辑不合理,数据量太大、架构设计不合理、慢查询等。在优化的时候不能一上来就扑倒sql调优上,要整体查看性能损耗最大的地方在哪里,然后对症下药。

今天主要探讨的是从数据库下手可以做哪些优化。对mysql数据库进行优化也有以下几个维度来进行。从上到下,优化的投入产出比越来越小,意味着sql与索引层面的优化消耗的成本低,带来的回报大,而硬件与操作系统层面的优化成本高,回报相对没有那么大。

1.SQL与索引

a.对sql的优化一般先通过满日志定位查询效率慢的sql语句,然后用explain分析sql执行计划。重点需要关注type、rows、filtered、extra。

type由上至下,查询效率system>const>eq_ref>ref>range>index>all,一般要达到range级别,最好达到ref,否则需要优化

  • ALL 全表扫描;

  • index 索引全扫描;

;