gpt4 book ai didi

sql - 索引所有列

转载 作者:行者123 更新时间:2023-12-02 04:47:12 24 4
gpt4 key购买 nike

知道索引列会带来更好的性能,那么是否值得对数据库的所有表中的所有列进行索引?这种方法的优点/缺点是什么?

如果值得的话,有没有办法在SQL Server中自动创建索引?我的应用程序动态添加表和列(取决于用户配置),我希望它们自动索引。

最佳答案

由于上述原因,很难想象现实世界中对每一列建立索引会有用的场景。这种场景类型需要一堆不同的查询,所有查询都只访问表的一列。每个查询都可以访问不同的列。

其他答案没有解决查询的选择端的问题。显然,维护索引是一个问题,但如果您创建一次表然后读取很多很多次,则更新/插入/删除的开销不是考虑因素。

索引包含原始数据以及指向数据所在记录/页面的点。索引的结构可以快速执行以下操作:查找单个值、按顺序检索值、计算不同值的数量以及查找最小值和最大值。

索引不仅占用磁盘空间。更重要的是,它占用内存。而且,内存争用通常是决定查询性能的因素。一般来说,在每一列上建立索引会比原始数据占用更多的空间。 (一个异常(exception)是相对较宽且值相对较少的列。)

此外,为了满足许多查询,您可能需要一个或多个索引以及原始数据。您的页面缓存中充满了数据,这会增加缓存未命中的次数,从而产生更多的开销。

我想知道您的问题是否真的表明您没有充分地对数据结构进行建模。在极少数情况下,您希望用户构建临时永久表。更常见的是,他们的数据将以预定义的格式存储,您可以针对访问要求进行优化。

关于sql - 索引所有列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12915623/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com