首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

《MySQL系列》之 性能优化总结(二)

三、基础设施优化

1、硬件优化

CPU:配置多核心和频率高的cpu,多核心可以执行多个线程。

内存:配置大内存,提高内存,即可提高缓存区容量,因此能减少磁盘IV/O时间,从而提高响应速度。

磁盘:配置高速磁盘或合理分布磁盘:高速磁盘提高I/O,分布磁盘能提高并行操作的能力。

2、数据库本身参数配置

key_buffer_size:索引缓冲区大小

table_open_cache:指定表高速缓存的大小

query_cache_size和query_cache_type:前者是查询缓冲区大小后者是前面参数的开关,0表示不使用缓冲区,1表示使用缓冲区,但可以在查询中使用SQL_NO_CACHE表示不要使用缓冲区,2.表示在查询中明确指出使用缓冲区才用缓冲区,即SQL_CACHE。

sort_buffer_size:排序缓冲区。

四、数据库架构优化

1、增加缓存

给数据库增加缓存系统,把热数据缓存到内存中,如果缓存中有请求的数据就不再去请求MySQL,减少数据库负载。

2、主从复制与读写分离

在生产环境中,业务系统通常读多写少,可部署一主多从架构,主数据库负责写操作,并做双机热备,多台从数据库做负载均衡,负责读操作。

3、分表

分表分为垂直拆分和水平拆分:

垂直拆分:把原来的一个很多字段的表拆分多个表,解决表的宽度问题。你可以把不常用的字段单独放到一个表中,也可以把大字段独立放一个表中,或者把关联密切的字段放一个表中。

水平拆分:把原来一个表拆分成多个表,每个表的结构都一样,解决单表数据量大的问题。(单表数据超过800w的话,性能就很低)。

4、分区

分区就是把一张表的数据,根据表结构中的字段(如range、list、hash等)分成多个区块,这些区块可以在一个磁盘上,也可以在不同的磁盘上,分区后,表面上还是一张表,但数据散在多个位置,这样一来,多块硬盘同时处理不同的请求,从而提高磁盘I/o读写性能。

历史文章及资料

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230206A000IT00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券