返回介绍

8.6 索引能够提升数据的检索速度

发布于 2023-05-19 17:35:11 字数 981 浏览 0 评论 0 收藏 0

可以在表的各个字段上设置索引(Index),这也是DBMS所具备的功能之一。虽然索引和键这两个概念容易让人混淆,但其实两者是完全不同的。索引仅仅是提升数据检索和排序速度的内部机制。一旦在字段上设置了索引,DBMS就会自动为这个字段创建索引表(如图8.12所示)

图8.12 设置索引

索引表是一种数据结构,存储着字段的值以及字段所对应记录的位置。例如,如果在顾客表姓名字段上设置了索引,DBMS就会创建一张索引表(如图8.13所示)

图8.13 如果字段上有索引就可以缩短检索时间

表中有两个字段,分别存储着顾客姓名和位置(所对应的记录在数据文件中的位置)。与原来的顾客表相比,索引表中的字段数更少,所以可以更快地进行数据的检索和排序。当查询数据时,DBMS先在索引表中进行数据的检索和排序,然后再根据位置信息从原来的数据表中把完整的记录取出来。索引所引起的就是“目录”的作用。与图书的目录一样,数据库的索引也是一种能够高效地查找目标数据的机制

既然索引能够提升检索和排序的速度,那么在所有表的所有字段上都加上索引不就好了吗?实际上不能这样做,因为一旦设置了索引,每次向表中插入数据时,DBMS都必须更新索引表。提升数据检索和排序速度的代价就是插入或更新数据速度的降低。因此,只有对那些要频繁地进行检索和排序的字段,才需要设置索引。在酒铺数据库这个例子中,只需要在顾客表的顾客姓名字段和商品表的商品名称字段上设置索引就足够了。如果表中充其量也就只有几千条记录,那么即使完全不使用索引,也不会感到检索或排序速度有多慢

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文