一、表的设计优化
参考阿里开发手册(嵩山版)
1、设置合适的数值(tinyint、int、bigin),要根据实际情况选择。
2、设置合适的字符串类型(char 和 varchar),char 定长效率高,varchar 可变长度,效率稍低
二、索引优化
参考优化创建索引原则索引创建的原则-CSDN博客与索引失效博客:什么情况下索引会失效-CSDN博客
三、SQL 语句优化
1、SELECT 语句务必指明字段名称(避免直接使用 select *)
2、SQL 语句要避免造成索引失效的写法
3、尽量用 union all 代替 union,union 会多一次过滤,效率低
4、避免在 WHERE 子句中对"索引列"进行表达式操作,会导致索引失效
5、Join 优化,能用 innerjoin 就不要用 left join、right join,如果必须使用,必须以小表为驱动,对于 LEFT JOIN,小表应该放在左边(左表当驱动)、对于 RIGHT JOIN,小表应该放在右边(右表当驱动),节约I/O(磁盘/内存读取)和 CPU 比较次数。innerjoin内连接会对两个表进行优化,优先把小表放到外边,把大表放到里面。而 left join 或 right join,不会调整顺序。
四、主从复制、读写分离
如果数据库的使用场景读的操作比较多的时候,为了避免写的操作所造成的性能影响。可以采用读写分离的架构。读写分离可以解决因为数据库的写入而导致的查询效率降低。
五、分库分表
篇幅较长,可参考分库分表博客:详解分库分表-CSDN博客