0.数据库表的水平分割和垂直分割是两种常见的数据库优化技术,它们分别针对不同的场景和需求进行数据表的拆分。
1. 水平分割(Horizontal Splitting)主要是按照记录进行分割,即不同的记录被分开保存在不同的表中,而这些表具有相同的列数。
这种分割方式适用于以下情况:
(1)当表非常大,分割后可以降低查询时需要读取的数据和索引的页数,提高查询速度。
当表中的数据本来就有独立性,例如记录不同地区或不同时期的数据,且有些数据常用而有些不常用。
(2)需要把数据存放到多个介质上。
水平分割的缺点是增加了查询的复杂性,可能需要使用UNION操作来查询所有数据,这在某些情况下可能会超过它带来的优点。
2.垂直分割(Vertical Splitting)则是按照列进行分割,即一条记录中的不同列被分开保存在不同的表中。
这种分割方式适用于:
(1)当表中某些列常用而其他列不常用,通过垂直分割可以提高查询效率。
(2)当需要减小数据行的尺寸,以便在单个数据页中存放更多的数据,减少I/O次数。
(3)当表的列数不规定时,可以采用垂直分割的方法,在一个表的末尾添加扩展项数,在另一张表中添加扩展项。具体如下所示:
employees表,包含如下字段:

extTab表包含如下字段信息:


![[MRCTF2020]Ezpop](https://img-blog.csdnimg.cn/img_convert/3ba21bb694c6d6f67c2d95060a92b1d2.png)

















