首先我们得确定哪些sql语句需要优化,一般在一个系统中,查询语句最多,所以我们主要是针对查询语句进行优化。主要采用两种方式来确定要优化的sql语句:
①使用慢查询日志,设置需要优化的sql语句的执行时间,记录下超过该设置时间的语句,即为需要优化的语句。
②使用profiling机制,记录下每条sql语句的执行时间,找出执行较慢的语句,即为需要优化的语句。
我们主要通过给表字段添加索引的方式进行优化,加上索引后,sql语句的执行时间显著提高了,但并不是加上索引了这条sql语句就会用到索引,所以首先看执行慢的语句后面是否有加索引,我们可以使用explain或者desc加在要执行的sql语句前,查看是否使用到索引。有几个地方需要注意的是:
①为了避免建议索引而造成索引文件过大,有时候我们会使用复合索引,这时候要遵循最左原则。
②like查询,前%不会用到索引
③如果条件中有or,则要求or的索引字段都必须有索引,否则不能用到索引。
④如果列类型是字符串,一定要在条件中将数据使用引号引用起来,否则不使用索引。
⑤优化group by 语句
⑥尽量避免模糊匹配,这样会导致全盘扫描