同是一个字段,为什么索引比数据库的字段查询速度更快?
2个回答
展开全部
问题描述含混,似乎应该是“为什么建立索引能够使得数据库查询更快”,按此来解释吧。
一般的数据表是按照行来存储的,字段多、有长字段的表的记录就会长,就要占用更多的空间来存储,而索引是建立在一个或少数几个字段上的特殊数据结构,一个索引项的存储开销和表的记录相比是很小的。
所谓查询速度更快,其实发生在计算机内部的动作有三大步骤,即输入、处理和输出,完成整套动作之后,你才能体会到快慢,而在这三个动作中,输入通常就是从硬盘上装载数据到内存,它耗时最甚,那么读取索引和读取表的全部行的数据量差异就大大影响最终性能。另外,索引是排好序的,能够实施二分查找算法,比其行扫描(读取表的所有记录,逐行判断是否满足条件)这种顺序查找算法来说,效率提升也以数量级计。
一般的数据表是按照行来存储的,字段多、有长字段的表的记录就会长,就要占用更多的空间来存储,而索引是建立在一个或少数几个字段上的特殊数据结构,一个索引项的存储开销和表的记录相比是很小的。
所谓查询速度更快,其实发生在计算机内部的动作有三大步骤,即输入、处理和输出,完成整套动作之后,你才能体会到快慢,而在这三个动作中,输入通常就是从硬盘上装载数据到内存,它耗时最甚,那么读取索引和读取表的全部行的数据量差异就大大影响最终性能。另外,索引是排好序的,能够实施二分查找算法,比其行扫描(读取表的所有记录,逐行判断是否满足条件)这种顺序查找算法来说,效率提升也以数量级计。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |