经常会听说数据库的分库分表,工作后更是发现这是一个基本必备的知识,由于自己对这块了解不是很好,所以就最近在关注学习,下面把学习到的东西总结一下,如有错误,请大家帮忙纠正!
从两个W一个H了解,What?Why?How?
1.What(什么是分库分表)?
从字面上简单理解,就是把原本存储于一个库的数据分块存储到多个库上,把原本存储于一个表的数据分块存储到多个表上。
英文是“shard”,作为数据库相关的技术用语,Sharding是水平扩展(Scale
Out,亦或横向扩展、向外扩展)的解决方案,主要目的是为突破单节点数据库服务器的 I/O
能力限制,解决数据库扩展性问题。通过一系列的切分规则将数据水平分布到不同的DB或table中,在通过相应的DB路由 或者
table路由规则找到需要查询的具体的DB或者table,以进行Query操作。这里所说的“sharding”通常是指“水平切分”。
2.Why(为什么要分库分表)?
当我们了解为什么的时候就是要知道这样做是解决了哪些已知的问题?