mysql数据库性能优化

60 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第27天,点击查看活动详情

随着业务的扩展,我们存在数据库里面的数据肯定也是指数级上升,就会发现之前使用的数据库查询语句变得没有之前那么快了,每次调用接口查询都会消耗很多时间,接口响应速度变慢。这个时候,代码优化和数据库性能优化就不得不考虑了。

数据库优化可以从硬件和软件方面入手:

硬件方面

单独使用数据库服务器,提高数据库服务器的性能配置,机械硬盘可以换成固态硬盘,提高读写效率。这个方式可以说是简单直接粗暴,有钱增配置就行,不过对于预算不足或者是能在软件方面优化的还是要先从软件方面入手。软硬皆施方可长久。

软件方面:

image.png

  • 使用Innodb引擎,针对大数据量提高性能。

  • 添加索引列,针对经常查询的列进行添加索引,对where条件以及order by 条件字段添加索引,不经常使用到的列不建议增加索引。

  • 在where中尽量不用 !=null or is null 等条件判断,这样的话会照成全表扫描,使索引列失效。

  • 对不经常变的数据(如省市区)进行放入缓存处理,减少数据库的压力。

  • 将一个关联查询比较多的大SQL优化为多个小SQL,使用代码操作数据,这样达到在内存中进行处理数据目的。

  • 数据库结构优化

    分库、分表(水平拆分、垂直拆分)

    分布式存储

    读写分离

以上方法配合使用,当然数据库性能优化的方式方法也不止以上这几种,这里也欢迎小伙伴们评论补充~