大表如何优化?

时间:2021-07-19 16:43:09   收藏:0   阅读:0

当MySQL单表记录数过大时,数据库的增删改查性能会明显下降,常见的优化方法如下:

(1)限定数据的范围

务必禁止不带任何限制数据范围条件的查询语句。比如我们当用户在查询订单历史的时候,可以控制在一个月范围内。

(2)读写分离

经典的数据库拆分方案,主库负责写,从库负责读。

(3)垂直分区

根据数据库里面数据表的相关性进行拆分。例如,用户表中既有用户的登录信息又有用户的基本信息,可以将用户表拆分成两个单独的表,甚至放到单独的库做分库。

垂直拆分就是指数据表列的拆分,把一张列比较多的表拆分成多张表。

技术图片

垂直拆分的优点:可以使得列数据变小,在查询时减少读取的block数,减少IO次数。另外,垂直分区可以简化表的结构,易于维护。

垂直拆分的缺点:主键会出现冗余,需要管理冗余列,并会引起join操作,可以通过在应用层进行join来解决。此外,垂直分区还会使得事务变得更复杂。

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!