当前位置: 首页 > news >正文

mysql 分表条件_MySQL优化(一):MySQL分库分表

一、分库分表种类

1、垂直拆分

在考虑数据拆分的时候,一般情况下,应该先考虑垂直拆分。垂直可以理解为分出来的库表结构是互相独立各不相同的、

- 如果有多个业务,每个业务直接关联性不大,那么就可以把每个业务拆分为独立的实例、库或表。

- 如果在一个库里面有多张表,那么可以把每张表拆分到不同的实例上。

- 如果你有一张表,但这个表里的字段很多,每个字段都有不同的含义,例如user表里面有姓名、生日、地址等,那么可以把每个字段独立出来拆分为一张新表。

2、水平拆分

水平拆分是针对一张表来说的。在经过垂直拆分之后,如果数据量依然很大,那么可以通过某种算法进行水平拆分。拆分后具有多张相同表结构的表,每张表存储一部分数据。

二、分库分表原则

1、原则1:能不分就不分

MySQL是关系型数据库,数据库表之间的关系从一定角度映射了业务逻辑。任何分库分表的行为都会提升业务逻辑的复杂度,数据库除了承载数据的存储和访问外,协助业务更好地实现需求和逻辑也是其重要的工作之一。分库分表会带来数据的合并、查询、更新条件的分离,以及事物的分离等多种后果,业务实现的复杂度往往会翻倍或指数级上升。所以在分表分库之前,应先升级硬盘、内存、CPU、网络、版本、读写分离、负载均衡及SQL语句优化。

2、原则2:数据量太大,正常的运维影响业务访问

正常运维主要包括:

- 数据库的备份

- 数据表的修改

- 热点数据

3、原则3:表设计不合理

- 某个表字段不断被update,压力非常大

- 某个表字段存在TEXT或BLOB字段

4、原则4:某些数据表出现了无穷增长的情况

各种评论、消息、日志记录表现为不可控的增长,此时可按用户、时间、用途等进行水平拆分。

相关文章:

  • mysql专业人数_mySQL算出一个或两个以上的人数?
  • pdo mysql防注入_pdo如何防止 sql注入
  • 脉冲超声波 发射脉宽_超声波液位计和雷达液位计到底有什么不同
  • python通过什么来判断当前程序是否在_python3怎么判断进程是否存在
  • php mysql搭建个人博客_Docker最全教程之使用PHP搭建个人博客站点(二十二)
  • arcgis gp 选择图层_ArcGIS Engine实现图层间空间选择的优化策略
  • mysql 8安装 windows xp_Windows XP下安装和配置Apache2.2.22服务器+PHP5+Mysql5
  • python怎么强制转换_Python如何实现强制数据类型转换
  • 正向生成数据库mysql_数据库表反向生成 Django ORM inspectdb
  • java 泛型定义_Java中泛型定义的含义
  • 字符串转数组java_java数组与字符串相互转换、整型与字符串相互转换【详解】...
  • 简单描述mysql视图的概念_介绍mysql中视图的概念及操作
  • java web 与asp.net_JavaWeb与Asp.net工作原理比较分析
  • java 对象序列化磁盘_java对象的序列化以及反序列化详解
  • java --help_java help
  • 【JavaScript】通过闭包创建具有私有属性的实例对象
  • 2018天猫双11|这就是阿里云!不止有新技术,更有温暖的社会力量
  • Apache的80端口被占用以及访问时报错403
  • GDB 调试 Mysql 实战(三)优先队列排序算法中的行记录长度统计是怎么来的(上)...
  • Hibernate【inverse和cascade属性】知识要点
  • js中forEach回调同异步问题
  • Kibana配置logstash,报表一体化
  • mysql_config not found
  • MySQL的数据类型
  • swift基础之_对象 实例方法 对象方法。
  • win10下安装mysql5.7
  • XML已死 ?
  • 百度小程序遇到的问题
  • 多线程 start 和 run 方法到底有什么区别?
  • 复杂数据处理
  • 基于OpenResty的Lua Web框架lor0.0.2预览版发布
  • 检测对象或数组
  • 世界编程语言排行榜2008年06月(ActionScript 挺进20强)
  • 携程小程序初体验
  • 新版博客前端前瞻
  • 用 Swift 编写面向协议的视图
  • 正则与JS中的正则
  • 1.Ext JS 建立web开发工程
  • 蚂蚁金服CTO程立:真正的技术革命才刚刚开始
  • #调用传感器数据_Flink使用函数之监控传感器温度上升提醒
  • (2)(2.4) TerraRanger Tower/Tower EVO(360度)
  • (arch)linux 转换文件编码格式
  • (JS基础)String 类型
  • (四)图像的%2线性拉伸
  • (已解决)vue+element-ui实现个人中心,仿照原神
  • (轉貼) 資訊相關科系畢業的學生,未來會是什麼樣子?(Misc)
  • .NET Core 和 .NET Framework 中的 MEF2
  • .net core 客户端缓存、服务器端响应缓存、服务器内存缓存
  • .net 重复调用webservice_Java RMI 远程调用详解,优劣势说明
  • .NET/C# 避免调试器不小心提前计算本应延迟计算的值
  • .NET框架类在ASP.NET中的使用(2) ——QA
  • @Responsebody与@RequestBody
  • [ Algorithm ] N次方算法 N Square 动态规划解决
  • [ CTF ] WriteUp- 2022年第三届“网鼎杯”网络安全大赛(白虎组)
  • [2019.2.28]BZOJ4033 [HAOI2015]树上染色