数据库的分区的技术其实比较好理解,大家都是知道数据库中的表其实就是一个二维表,从存储的和查询的角度看,可以把表简化看做是一个队列。
在数据结构的这门课中,我们都知道对一个已排序(有索引)队列进行查询的时间复杂度是O=n lg n, 这里n可以看做是数据库中表的行数。
假定一个有100,000,000行记录的表,在不分区的情况下,其查找一条记录的时间复杂度为O=100000000lg100000000
而把他分成20个分区后,则其每个队列的平均长度变为5,000,000行,则查找一条记录的时间复杂度就变为O=5000000lg5000000 加上一次确定记录所在分区的操作。可见通过分区可以大大的所谓查找所需的时间,提高系统的执行效率。 这是分区出现的理论基础。