美文网首页
后端存储15(分库分表)

后端存储15(分库分表)

作者: 兮兮码字的地方 | 来源:发表于2020-11-05 23:39 被阅读0次

分库分表一定是,数据量和并发大到所有招数都不好使了,才拿出来的最后一招。

如何规划分库分表

在考虑到底是分库还是分表之前,先明确一个原则,那就是能不拆就不拆,能少拆不多拆。原因也很简单,把数据拆分得越散,开发和维护起来就越麻烦,系统出问题的概率就越大。

解决查询慢——分表

解决高并发——分库

一般情况下,都需要同时做分库分表,这时候分多少个库,多少张表,分别用预估的并发量数据量来计算就可以了。

不建议在方案中考虑二次扩容的问题,也就是考虑未来的数据量(现在技术和业务变化这么快,等真正到了那个时候,业务早就变了,可能新的技术也出来了,越简单的设计可靠性越高)。

如何选择 Sharding Key

选择一个合适的列或者说是属性,作为分表的依据,这个属性一般称为 Sharding Key。查询条件中必须带上这个 Sharding Key,这样程序才知道每次该访问哪个库和表。

选择 Sharding Key 的时候,一定要能兼容业务最常用的查询条件,让查询尽量落在一个分片中,分片之后无法兼容的查询,可以把数据同步到其他存储中去,来解决这个问题。

我们常用三种分片算法,范围分片容易产生热点问题,但对查询更友好,适合适合并发量不大的场景;哈希分片比较容易把数据和查询均匀地分布到所有分片中;查表法更灵活,但性能稍差。

PS:对于订单表进行分库分表,一般按照用户 ID 作为 Sharding Key,采用哈希分片算法来均匀分布用户订单数据。为了能支持按订单号查询的需求,需要把用户 ID 的后几位放到订单号中去。

相关文章

  • 后端存储15(分库分表)

    分库分表一定是,数据量和并发大到所有招数都不好使了,才拿出来的最后一招。 如何规划分库分表 在考虑到底是分库还是分...

  • 数据访问层

    URUDORM分库分表屏蔽底层存储差异性

  • 面试必备:我们为什么要分库分表?

    目录 什么是分库分表 为什么需要分库分表呢 如何分库分表 什么时候开始考虑分库分表 分库分表会导致哪些问题 分库分...

  • 初识分库分表

    1. 为什么要分库分表? 什么场景下需要分库分表? 单表数据上亿,查询性能下降; 解决大数据存储,提高访问性能; ...

  • 分库分表方案

    为什么分库分表?单库单表性能时延扛不住,或者存储空间扛不住 分库和分表有区别吗?存在批量查询的情况下,分表只能徒增...

  • centos7安装Mycat-单机版

    前言 系统的数据承载量还是挺大的,所以需要对存储进行分库分表,数据库使用mysql,分库分表中间件使用mycat(...

  • Mysql的分库分表,水平拆分-垂直拆分

    参考文章MySQL分库分表总结参考数据库分库分表策略,如何分库,如何分表?MySQL分库分表原理 MySQL单库数...

  • 分库分表

    (1)什么时候才需要分库分表呢?我们的评判标准是什么? (2)一张表存储了多少数据的时候,才需要考虑分库分表? (...

  • 分库分表

    【分库、分表】MySQL分库分表方案 - MrSunny - 博客园 总结下Mysql分表分库的策略及应用 - 周...

  • 腾讯高级架构师熬夜整理:中间件MyCat实战笔记,开放下载

    Mycat是一个开源的分布式数据库系统,其核心功能是分表分库,即将一个大表水平分割为多个小表,存储在后端MySQL...

网友评论

      本文标题:后端存储15(分库分表)

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