一、为什么分库分表

我们知道每台机器无论配置多么好它都有自身的物理上限,所以当我们应用已经能触及或远远超出单台机器的某个上限的时候,我们惟有寻找别的机器的帮助或者继续升级的我们的硬件,但常见的方案还是通过添加更多的机器来共同承担压力。我们还得考虑当我们的业务逻辑不断增长,我们的机器能不能通过线性增长就能满足需求?因此,使用数据库的分库分表,能够立竿见影的提升系统的性能,关于为什么要使用数据库的分库分表的其他原因这里不再赘述,主要讲具体的实现策略。

二、分表实现策略

关键字:用户ID、表容量

对于大部分数据库的设计和业务的操作基本都与用户的ID相关,因此使用用户ID是最常用的分库的路由策略。用户的ID可以作为贯穿整个系统用的重要字段。因此,使用用户的ID我们不仅可以方便我们的查询,还可以将数据平均的分配到不同的数据库中。(当然,还可以根据类别等进行分表操作,分表的路由策略还有很多方式)接着上述电商平台假设,订单表order存放用户的订单数据,sql脚本如下:

当数据比较大的时候,对数据进行分表操作,首先要确定需要将数据平均分配到

Mysql学习总结(59)——数据库分库分表策略总结相关推荐

  1. 亿级流量网站架构核心技术之“数据库分库分表策略”

    本文节选自<亿级流量网站架构核心技术--跟开涛学搭建高可用高并发系统>一书 张开涛 著 电子工业出版社出版 小编会从留言中选择获赞最多的前五名用户免费送出此书哦!规则见文末. 数据库分库分 ...

  2. MySQL数据库知识学习(五)读写分离与分库分表策略

    通过数据库锁及存储引擎的学习,我们知道数据库在数据操作过程中为了保证数据的一致性是会给表或行加锁的,在网站发展的初期,由于没有太多访问量,一般来讲只需要一台服务器就够了,这的操作也不会有什么问题.但随 ...

  3. nodejs mysql 分表_数据库分库分表学习

    大型网站数据库分库分表 分库分表方案: 垂直&水平 1.什么是垂直拆分? 指的是将一个包含了很多表的数据库,根据表的功能的不同,拆分为多个小的数据库,每个库中包含部分表. .垂直拆分的另外2种 ...

  4. 一文搞懂MySQL数据库分库分表

    如果数据量过大,大家一般会分库分表.分库需要注意的内容比较少,但分表需要注意的内容就多了. 工作这几年没遇过数据量特别大的业务,那些过亿的数据,因为索引设置合理,单表性能没有影响,所以实战中一直没用过 ...

  5. mysql分库分表中间件6_当当开源sharding-jdbc,轻量级数据库分库分表中间件

    近期,当当开源了数据库分库分表中间件sharding-jdbc. Sharding-JDBC是当当应用框架ddframe中,从关系型数据库模块dd-rdb中分离出来的数据库水平分片框架,实现透明化数据 ...

  6. mysql分库分表 ppt_数据库分库分表中间件架构解析.ppt

    数据库分库分表中间件架构解析 Processor(1) Processor(n) MySQL MySQL MySQL Cobar结构 Front-end Communication Applicati ...

  7. mysql取余 和 取模_java 取模运算% 实则取余 简述 例子 应用在数据库分库分表

    java 取模运算%  实则取余 简述 例子 应用在数据库分库分表 求模运算与求余运算不同."模"是"Mod"的音译,模运算多应用于程序编写中. Mod的含义为 ...

  8. 当当网mysql分库分表策略_当当开源sharding-jdbc,轻量级数据库分库分表中间件

    近期,当当开源了数据库分库分表中间件sharding-jdbc. Sharding-JDBC是当当应用框架ddframe中,从关系型数据库模块dd-rdb中分离出来的数据库水平分片框架,实现透明化数据 ...

  9. 数据库分库分表(sharding)系列(三) 关于使用框架还是自主开发以及sharding实现层面的考量...

    当团队对系统业务和数据库进行了细致的梳理,确定了切分方案后,接下来的问题就是如何去实现切分方案了,目前在sharding方面有不少的开源框架和产 品可供参考,同时很多团队也会选择自主开发实现,而不管是 ...

最新文章

  1. jsp servlet mysql封装_html2canvas使用中的坑 - SegmentFault 思否
  2. 怎么才能转入大数据领域 ,成为一名合格的大数据分析师...
  3. Linux远程远程控制程序TeamViewer
  4. android选项菜单源代码,Android应用程序----UI界面控件(菜单menu)
  5. plsql连接mysql_安装了mysql和pl/sql,怎么配置让pl/sql能联接mysql数据库
  6. [2019杭电多校第六场][hdu6638]Snowy Smile(维护区间最大子段和)
  7. Vue源码:mustache模板引擎学习
  8. Linux centosVMware mysql用户管理、常用sql语句、mysql数据库备份恢复
  9. FCPX内置音效库汉化版
  10. 解决添加打印机print spooler打印服务自动关闭故障
  11. 沉云架路,边缘先锋—中国联通5G边缘先锋团队2020年交付纪实
  12. VMware Workstation 15 Player 共享文件夹制作
  13. light动名词_动名词的用法英语语法大全
  14. python实现在线答题_仿 StackOverflow 开发在线问答系统
  15. UVALive 7178 Irrational Roots 多项式的根
  16. 什么牌子的蓝牙耳机耐用?2023年最值得入手的蓝牙耳机分享
  17. 关于JSON存放List集合的顺序问题
  18. JVM下篇:性能监控与调优篇
  19. ACCESS数据库防下载技术
  20. activiti并行审批流程驳回(折腾了好几天)

热门文章

  1. mini_Xception架构
  2. linux mysql5.7.18多实例_mysql5.7.13二进制包安装多实例
  3. java8 stringbuilder_有了Java8的“+”真的可以不要StringBuilder了吗
  4. 中河广播服务器怎么连接无线话筒,无线话筒怎么连接音响 话筒连接音响方法...
  5. python根据字典绘制条形图_使用 Bokeh 为你的 Python 绘图添加交互性 | Linux 中国
  6. oracle π,plsql 计算π
  7. java spring文件下载_SpringMVC实现文件上传和下载的工具类
  8. linux 执行iso 文件,linux可以加载iso镜像文件到启动项吗
  9. linux给命令起别名命令,alias命令 – 设置命令别名
  10. gradle是干什么_gradle和ant等构建工具有什么核心优势?