MySQL性能优化(一):优化方式

一:简介

MySQL性能优化是通过优化各个方面的,不但是优化SQL语句这一方面,通过各方面的优化,每个地方优化一些,这样整体性能就会提升很多。

二:优化方式

1. 优化数据库表的设计

为什么数据库表的设计会影响性能?

  • 字段的数据类型:不同的数据类型的存储和检索方式不同,对应的性能也不同,所以说要合理的选用字段的数据类型。比如人的年龄用无符号的tinyint即可,没必要用integer
  • 数据类型的长度:数据库最终要写到磁盘上,所以字段的长度也会影响着磁盘的I/O操作,如果字段的长度很大,那么读取数据也需要更多的I/O,这些都需要时间。比如用户的手机号11位长度,没必要用255个长度。
  • 表的存储引擎:常用的存储引擎有MyISAM、InnoDB、Memory,不同的存储引擎拥有不同的特性,所以要选择合适的存储引擎来提高速度。MyISAM不支持事务,但是查询速度快,InnoDB支持事务。

2. SQL优化

MySQL性能优化的一个很重要的手段就是对SQL语句的优化。其中最重要的方式就是使用索引。

3. 分表

当一个表的数据量很大的时候,查询就变的很慢,所以减少表里的记录的数量是优化的一种方式,这种方式就是将一张表的数据拆分成多张表,这样每张表的数量就减少了,这样查询速度就相对来说就快了一些。

4. 数据库配置优化

mysql是一个高度定制化的数据库系统,提供了很多配置参数(如最大连接数、数据库占用的内存等),这些参数都有默认值,一般默认值都不是最佳的配置,一般都需要根据应用程序的特性和硬件情况对mysql的配置进行调整。

例如最大连接数默认为100,即使SQL语句优化的再好,硬件设备配置再高,当请求超过100时都要再等待,这就是配置不合理导致MySQL不能发挥它的最大能力。

5. 主从复制,读写分离

一台MySQL服务器同一时间点支持的并发数是有限的,当大量并发(如秒杀活动等,很多用户都同一时刻访问数据库)时,一台数据库处理不过来,一个查询过来只能等着,所以增加MySQL服务器的数量也是一种方式。

通过使用MySQL主从复试,增删改操作走Master主服务器,查询走Slaver从服务器,这样就减少了一台服务器的压力。

6. 增加缓存层

减少数据库连接也是一种优化手段,有些查询可以不用访问数据库,可以通过使用缓存服务器如redis、memcache、elasticsearch等增加缓存,减少数据库连接

7. 升级服务器硬件

当所有优化手段都用了,还是不满意,只有升级MySQL服务器端硬件了,更强的CPU,更大的内存等。

总之对MySQL性能的提升,是通过各个方面来提升的,每个方面都提升一点,整体加起来就有明显的提升。

猜你喜欢

转载自blog.csdn.net/vbirdbest/article/details/81047715