千万级数据量必须分库分表?揭秘几个主流打法!

82 阅读1分钟

千万级数据量必须分库分表?揭秘几个主流打法!

回答

  • 不到万不得已,不建议大家直接做分库分表。

    因为,分库分表其实不仅实现方案复杂,并且也会带来很多问题,比如跨库事务、分页查询等。

    参考引用:Java 八股/分库分表后会带来哪些问题?

优先方案
  1. 数据库优化

    2000 万的数据量,其实大多数情况下用好索引就可以提升很大的效率的。

    有时候,把索引优化好,表结构设计好(比如适当做数据冗余),SQL语句(比如减少多表JOIN)优化好,就可以大大提升性能。

  2. 缓存

    可以通过缓存来减少对数据库的压力,不要把所有的流量都交给数据库来抗。

  3. 分区

    通过数据分区可以减小单个表的物理存储空间

  4. 数据归档

    定期的清理一些冷数据,或者做数据归。

    这样,就可以减少数据的数量,就能大大提升效率。

  5. 分布式数据库

    在多个节点上分散数据,提高性能和容量。

    虽然,分布式数据库需要的成本比较高,

    但是,相比分库分表的改造来说,受益也比较大。