sql优化一般着眼于一下几点
sql语句优化
索引优化(理解每一种索引的优势和特点,以及索引应用场景)
数据库结构优化(分表,分库)
InnoDB 表优化
MyISAM 表优化
Memory表优化
理解查询执行计划(explain)
缓冲和缓存(可以将经常查询的缓存到内存中(redis,memcache中))
锁优化
MySQL 服务器性能优化
sql 优化需要在三个不同层次上协调进行:
MySQL 级别 OS级别 和 硬件级别 MySQL级别的优化包括 表优化 查询优化 和MySQL服务器配置优化 而 数据库的各种数据结构最终又是直接在OS层进行IO 操作 最终到达硬件,因此需要尽量降低IO提升效率
数据库层面优化
表结构优化(大多数情况下char类型字段性能比可变类型的varchar好)
索引创建以及优化
选择合适的锁策略 (比如高并发场景下应该使用共享锁)
使用缓存
操作系统和硬件层面的着眼点
硬件配置(cpu 内存 SSD)
文件系统 (考虑文件系统修复能力,关闭文件系统的某些特性比如访问时间和预读行为)
网络设备