一、为什么分库分表

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

二、分表实现策略

关键字:用户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. PCL中有哪些可用的PointT类型(4)
  2. 长春理工大学第十四届程序设计竞赛
  3. mysql怎么定位错误信息_Mysql主从复制异常,定位具体的SQL
  4. 为何说国内云桌面已经步入成熟期
  5. 华为交换机 查看IP和MAC对应关系
  6. sqli-labs在线网站
  7. 8.3 bert的蒸馏讲解 意境级
  8. 建模实训报告总结_实验报告总结(15篇)
  9. 文件夹的使用、常见术语缩写
  10. python中用turtle画爱心表白
  11. eos代码阅读笔记09- 石墨烯架构Graphene
  12. html样式表三种类型包括,css样式有哪几种类型
  13. easyRtc设置视频清晰度的方法
  14. 无人机三维建模(5) Photoscan建模
  15. 什么是同源策略,所带来的影响
  16. 【Git】1090- 我在工作中是如何使用Git的
  17. android 反向进度条,Android progressBar 正向绘制与反向绘制
  18. MP2451的BUCK电路
  19. 51单片机正弦波c语言,用51单片机产生正弦波
  20. Spring MVC 项目 JSP 页面显示源码

热门文章

  1. JS在HTML中放的位置
  2. python源码剖析 豆瓣_在数据分析师的分析中豆瓣的书那些值得读
  3. 两种方法实现图片懒加载
  4. linux网卡握手速率模式,一种基于Linux平台下的网卡速率和双工模式测试的方法与流程...
  5. ubuntu指向python3_ubuntu安装python3.7,并更新python默认指向为python3.7
  6. 跨域产生的原因和解决方法_针织面料染色折痕/产生的原因及解决方法
  7. arduino 舵机接线图_用fritzing绘制arduino硬件连线图
  8. linux 释放进程res_linux下查询进程占用的内存方法总结
  9. python多分类画roc曲线_利用python制作ROC曲线进行多分类
  10. mysql group by 两列_MySQL GROUP BY两列