大表优化的常见手段

作者: happyJared | 来源:发表于2019-10-20 09:09 被阅读0次

当 MySQL 单表记录数过大时,数据库的 CRUD 性能会明显下降,一些常见的优化措施如下:

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

  2. 读/写分离: 经典的数据库拆分方案,主库负责写,从库负责读;

  3. 垂直分区: 根据数据库里面数据表的相关性进行拆分。例如,用户表中既有用户的登录信息,又有用户的基本信息,可以将用户表拆分成两个单独的表,甚至放到单独的库做分库。简单来说,垂直拆分是指数据表列的拆分,把一张列比较多的表拆分为多张表。 如下图所示:

垂直分区

垂直拆分的优点: 可以使行数据变小,在查询时减少读取的 Block 数,减少 I/O 次数。此外,垂直分区可以简化表的结构,易于维护。

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

  1. 水平分区: 保持数据表结构不变,通过某种策略存储数据分片。这样每一片数据就分散到不同的表或者库中,达到了分布式的目的。 水平拆分可以支撑非常大的数据量。 水平拆分是指数据表行的拆分,表的行数超过200万行时,就会变慢,这时可以把一张的表的数据拆成多张表来存放。举个例子:可以将用户信息表拆分成多个用户信息表,这样就可以避免单一表数据量过大对性能造成影响。
水平拆分

水平拆分可以支持非常大的数据量。需要注意的一点是:分表仅仅是解决了单一表数据过大的问题,但由于表的数据还是在同一台机器上,其实对于提升 MySQL 并发能力没有什么意义,所以 水平拆分最好分库 。水平拆分能够 支持非常大的数据量存储,应用端改造也少,但 分片事务难以解决 ,跨界点 Join 性能较差,逻辑复杂。《Java 工程师修炼之道》的作者推荐 尽量不要对数据进行分片,因为拆分会带来逻辑、部署、运维的各种复杂度 ,一般的数据表在优化得当的情况下,支撑千万以下的数据量是没有太大问题的。如果实在要分片,尽量选择客户端分片架构,这样可以减少一次和中间件的网络 I/O。

下面补充一下数据库分片的两种常见方案:

  • 客户端代理: 分片逻辑在应用端,封装在 Jar 包中,通过修改或者封装 JDBC 层来实现。 当当网的 Sharding-JDBC 、阿里的 TDDL 是两种比较常用的实现。
  • 中间件代理: 在应用和数据中间加了一个代理层。分片逻辑统一维护在中间件服务中。 我们现在谈的 Mycat 、360的 Atlas、网易的 DDB 等等都是这种架构的实现。

相关文章

  • 大表优化的常见手段

    当 MySQL 单表记录数过大时,数据库的 CRUD 性能会明显下降,一些常见的优化措施如下: 限定范围: 务必禁...

  • 数据库

    1. 常见的数据库优化手段: a. 百万级数据库优化: 对查询进行优化,要尽量避免全表扫描,考虑在where及...

  • 数据库

    1、常见的数据库优化手段 对查询进行优化,要尽量避免全表扫描,考虑在where及order by涉及的列上建立索引...

  • 常见索引优化手段

    1.联合索引第一个字段用范围不会走索引。2.强制走索引,虽然使用了强制走索引让联合索引第一个字段范围查找也走索引,...

  • Hive优化实践2-大表join小表优化

    4、大表join小表优化和join相关的优化主要分为mapjoin可以解决的优化(即大表join小表)和mapjo...

  • 面试题:在日常工作中怎么做MySQL优化的?

    前言 MySQL常见的优化手段分为下面几个方面: SQL优化、设计优化,硬件优化等,其中每个大的方向中又包含多个小...

  • 2018-02-24

    六、优化手段 主要以查询优化、索引使用和表结构设计方面进行讲解。 6.1 查询优化 1) 避免 SELECT *,...

  • iOS 手写性能监测工具

    为了提高应用的体验,我们需要对程序作出优化。难点不在如何做优化,而在找出优化的点。优化常见的手段就是:1 异步读写...

  • 12、大表如何优化?

    大表如何优化? 当MySQL单表记录数过大时,数据库的CRUD性能会明显下降,一些常见的优化措施如下: 1. 限定...

  • Hive优化实践3-大表join大表优化

    5、大表join大表优化如果Hive优化实战2中mapjoin中小表dim_seller很大呢?比如超过了1GB大...

网友评论

    本文标题:大表优化的常见手段

    本文链接:https://www.haomeiwen.com/subject/sowgmctx.html