上期我们讲了索引,MyISAM和InnoDB的选择等相关的数据库面试题目,小伙伴们掌握得怎么样了?这期树懒君决定分享一下分库分表方面的面试题目,这是一个很经典的面试问题哦~
首先,要知道分库分表是两回事儿,大家可别搞混了,可能是光分库不分表,也可能是光分表不分库,都有可能。下面直接上问题!
1.分区方案有哪些?
分区表是由多个相关的底表实现的。这些基础表也由句柄对象表示,因此我们也可以直接访问各个区域,存储引擎管理区域的各个基础表与管理普通表相同(所有基础表都必须使用相同的存储引擎),区域表的索引只是在各个基础表相同的索引。该方案屏蔽了用户的细节,即使查询条件没有sharding column,也能正常工作。
2.MySQL分区能做什么?
- 分割逻辑数据
- 提高单一的写作和阅读应用速度。
- 提高分区范围阅读查询速度。
- 分割数据能够有多个不同的物理文件路径
- 高效保存历史数据。
3.分区的类型
- RANGE区域:根据给定连续区间的列值,将多行分配给区域。mysql根据指定的分割战略,将数据放入不同的表格文件中。相当于文件,被拆成小块。但是,对外给顾客的感觉是表,是透明的。
- 根据range,每个库的连续数据,这一般在时间范围内,如交易表、销售表等,可以根据年月保管数据。可能会出现热点问题,大量的流量都在最新数据上。
- 分range的好处是,扩张时很简单。
- 类似于RANGE分区,每个分区都必须明确定义。其主要区别在于,