【讨论题】垂直切分和水平切分有什么不同,分别可以解决业务数据库遇到的什么瓶颈
题干:
本课程中我们学习了两种数据库的扩展方式:
一种为垂直切分,也就是把原来的一个数据库,按照不同的功能模块拆分成多个数据库,每个数据库中只保留某一功能某块的数据。
另一种为水平切分,也就是把原来的一个数据库,分成多个结构相同的数据库,每一个数据库中保存的是原数据库中的一部分数据。
那么通过本课程的学习,你了解了垂直切分和水平切分之间的不同了吗?他们分别解决了什么样的问题?或者说我们什么时候需要进行垂直切分,什么时候需要进行水平切分呢?
关键提炼:
熟练掌握垂直切分和水平切分的定义,明白其各种所解决的问题和适用的场景。
1).垂直切分和水平切分都可以扩展单数据的写入能力。
2).垂直切分中,切分后的每个数据库中保存的是某一个功能模块的数据,各个分片的数据库结构是不相同的。垂直切分适用于原来所有功能某块的数据混合在同一个数据库中,而各个功能某块又相互比较独立,但单数据库遇到写瓶颈后,就可以使用垂直切分来对数据库的写性能进行扩展了。
3).水平切分,是当某一个功能模块的数据库写性能遇到瓶颈后所使用的一种扩展数据库性能的方法。是把一个功能模块的数据分别存放到不同的数据库集群中,也就是说拆分后的各个集群中数据库的结构是相同的,但是只保存了原来整体数据的一部分数据。
4)我们在进行数据库写性能扩展时,应优先使用垂直切分,如果垂直切分不足以满足性能要求的情况下再使用水平切分。