-
一、什么时候该做分库分表操作?
1、当单表数据量达到千万级需要做水平分表操作。
因为MySQL的InnoDB引擎使用的是B+Tree数据结构存储索引,当数据量达到千万级别,该数据结构中树的层级将超过三层,会非常影响索引的执行效率。
2、当数据库的吞吐量达到了瓶颈时,就需要增加数据库实例,对数据库进行拆分,缓解系统压力。
-
二、如何做数据库分库分表?
1、水平拆分
根据分片算法,保留原有数据表或数据库结构,拆分为多个数据表或数据库。
2、垂直拆分
根据业务维度,对原有数据表或数据库的结构,进行拆分为多个数据表或数据库。
-
三、数据库分库分表的解决方案有哪些?
1、客户端分片
a)、直接在应用层实现分片逻辑和分片规则,需要在同一个应用的多个节点间进行同步,每个应用层都嵌入一个操作切片的逻辑实现,一般打包成