优化部分
- 架构设计的优化
- sql语句的优化
- mysql参数的配置
- 硬件方面的优化
架构设计的优化
表结构优化:分库分表(分区),读写分离,主从复制,表字段类型。
索引的优化:给经常查询的字段添加索引,能有效提高查询速度,但是不能滥用,否则会影响写入和更新的性能。
sql语句的优化
1、select 后尽量避免使用*查询,通常需要什么字段返回什么字段。
2、like查询时尽量把%放在右边,否则索引可能会失效。
3、尽量避免在sql查询条件中使用函数,否则可能导致索引失效。
4、where的字段类型尽量和表的字段类型一致,都在可能会出现隐式转换导致索引失效。
5、尽量避免使用or查询,因为or查询前后条件都必须是索引,否则可能导致索引失效。
6、查询条件中避免出现太复杂的逻辑,否则优化器放弃使用索引。
7、尽量避免多个表关联,可以适当冗余字段来减少表的关联。
8、尽量使用union all 来替换or查询。
9、尽量使用索引覆盖和索引下推来提高查询的效率。
10、可以使用explain 关键字来分析sql语句。
11、可以使用show profile工具来查看SQL语句的IO 开销,CPU 开销,内存开销等。
mysql 参数配置优化
buffer pool(一般设置内存的70%)
刷盘策略
预热加载策略
事务隔离级别
连接数
硬件方面的优化
cpu核数升级
内存升级
硬盘升级
带宽升级