MySQL数据库优化总结。
-
尽量将多次查询放到一条SQL语句里执行,避免循环中的SQL查询,特别是数据库和网站分离时。
-
对于left join,如果只是为了查询right表的某个字段,可选择使用配置文件来代替left join,将right的字段放入一个数组中,把数组序列化到一个文件中,需要用的时候反序列化,根据key查找value。
-
使用数据库的内置函数
-
只select用到的字段,而非select *
-
设计表结构时,可适当冗余,把通常需要较长时间才能查询出的数据做成字段,程序处理好后直接插入,这样可直接查询出来。
-
索引,组合索引有时比单个索引更高效
-
定期优化表空间
-
合理使用缓存,减少查询,以减少并发数和连接数,最终减少会话的等待时间和处理时间。16核64G的数据库存在大量事务操作时,会话话应保持在50以下。
-
分表,分区表。
-
事务中使用行级锁而不是表级锁