思考与总结:数据分片的一些问题

伴随业务发展的越来越好,必然引起数据量的不断增加,当数据量到达一定程度后,会导致数据库性能下降,此时,可以考虑使用数据分片。对于新库新表,一定依据数据增量评估结果决定是否需要分片,不要误用分片导致增加开发和维护的难度与成本。

数据分片的原因?

数据库数据量(1TB)超过阈值、数据表数据量超过阈值,影响数据库性能。

数据分片的评估标准?

  • 数据库数据大小,1TB
  • 数据表数据量,与索引深度有关,如3层,数据量1千万左右

数据分片方式?

  • 纵向分片 按照业务维度,将表分到不同的数据库。
  • 横向分片 按照某种规则,将一类数据分散存储到具有相同表结构的一批表中。

数据分片路由规则?

  • 分片数据列
  • 分片算法

分布式主键?

  • UUID
  • 雪花算法
  • 序列服务+一次性获取批量序列

如何处理crud sql?

  • 最好针对单表且条件中提供分片列数据
  • 表关联,笛卡尔积
  • 排序分页,map-reduce的过程

数据分片的实现方式?

  • 客户端
  • 代理
  • mysql插件

数据分片的事务支持?

  • 本地事务
  • XA事务,两阶段事务提交,如seata
  • 基于BASE的柔性事务,保证最终一致性

数据分片解决方案? 

  • ShardingSphere

数据分片 :: ShardingSpherehttps://shardingsphere.apache.org/document/current/cn/features/sharding/思考与总结:数据分片的一些问题_第1张图片

你可能感兴趣的:(技术思考总结,数据分片,分库分表)