Mysql分库分表

Mysql分库分表

  • 垂直分表
  • 水平分表
  • 垂直或水平分库

  • 对于大型互联网应用的数据库架构上, 首先做好主从分离提升读写性能, 还有通常查询操作远多于增删改, 因此从库充分的做好水平扩展来进一步提升读性能. 然后按单库或单表数据量过于庞大导致单个服务器的内存, 磁盘空间, IO等的有限性要做垂直或水平分库分表来改善相关表读写整体性能

垂直分表

  • 一般是在有较多字段的表内, 将不常用的字段, 特别是长度较大的字段 如 text类型字段等, 拆分到扩展表中, 为了防止查询时, 数据量大造成的"跨页"问题

水平分表

  • 针对数据量巨大的单表 如订单,用户表等, 通过定义好的规则 如 日期, HASH取模或 RANGE取模等方式指定表名, 然后做相关表的增删改查操作

垂直或水平分库

  • 在高并发时想要提升增删改性能, 只能通过对数据库进行拆分来提升, 这样会比起分表带来质的提升, 因为增删改操作在按业务逻辑或取模或日期方式分的不同服务器内的库中做的, 因此 IO相关性能将会有质的提升
  • 注: 分库需要注意的是跨数据库的事务和不同库内表之间的连表等问题

如果您觉得有帮助,欢迎点赞哦 ~ 谢谢!!

你可能感兴趣的:(基础知识,Mysql,数据库)