zoukankan      html  css  js  c++  java
  • 大表如何优化?

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

    (1)限定数据的范围

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

    (2)读写分离

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

    (3)垂直分区

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

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

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

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

    欢迎批评指正,提出问题,谢谢!
  • 相关阅读:
    数据结构算法练习(一)
    crontab详解
    git遇到问题
    docker容器管理
    docker及服务器遇到的坑
    shell study
    低级终端IO
    高级IO
    信号处理
    UNIX日期与时间
  • 原文地址:https://www.cnblogs.com/xxeleanor/p/15025615.html
Copyright © 2011-2022 走看看