首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

后端和DBA之MYSQL分片、分库、分表方案知识点总结分析!

上一篇介绍了后端程序员和BDA的关系型数据MYSQL的基本情况及基本优化方法,这一篇再深入一点介绍MYSQL的分片、分库和分表的意义和方法。

mysql

将一个数据库比喻成一个大任务,将这任务分散给不同的人去执行,那么每一个执行的人就称为数据库的碎片(DatabaseShard)。将整个数据库拆散成多份的过程就叫做sharding,中文叫做分片技术。

分片技术又分为四个方向,分别为:

分片

垂直分片是将一个大表里的字段拆分成两个或多个表,每个表只含有原表的部分字段,每个表的之间的表结构不一样,通过主键关联。

即将一个表分成多个相同结构的表,用于数据量大时通过算法将数据插入不同的表中,读取的时候和插入一样通过中间件算法将不同表的数据合并返回。

即将不同表分发到不同的服务器的数据库里去,主要意义在于如果所有的表存放在一个master数据库里,如果访问到达这个master的极限的时候,增加master的从库也不会有什么性能的提升,这时候就忘分为将表散,通过多台服务提供服务。

分片的意义在于,将大并发请求分发到不同的服务器的数据库去处理从而突破单机的性能限制,解决IO瓶颈的问题。分表解决单表数据量过大带来的查询效率下降的问题,分库帮数据库提高并发处理能力。

最后来说一下分区技术

分区

分区,分区就是把一张表的数据分成N多个区块,这些区块可以在同一个磁盘上,也可以在不同的磁盘上。分区后,单表的并发能力提高了,磁盘I/O性能也提高了。性能提高在于每次查询所花的时间变短了,如果出现高并发的话,总表可以根据不同的查询,将并发压力分到不同的小表里面。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180212A0CJ0U00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券