当前位置: 首页 > 面试题库 >

索引所有列

程举
2023-03-14
问题内容

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

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


问题答案:

由于上面提到的原因,很难想象在现实世界中对每列进行索引都是有用的。场景类型将需要一堆不同的查询,所有查询都只访问表的一列。每个查询可能正在访问不同的列。

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

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

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

另外,要满足许多查询,您可能需要一个或多个索引 以及 原始数据。您的页面缓存中充斥着大量数据,这可能会增加缓存未命中的数量,从而导致更多的开销。

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



 类似资料:
  • 我是弹性搜索新手,并且已经完成了类似mykong教程的基本教程 我对创建任何文档的一部分有疑问 创建操作示例插入包含 /mkyong/posts/1001和以下请求数据的新文档: 问题1:-ES是否会在上述文档的所有属性上创建反向索引,即默认情况下的标题/类别/已发布/作者,并提供全文搜索,还是需要明确提及? 问题2:-在上述示例中,我们已经有了唯一的\u id,即。如果我已经将其存储在DB中并生

  • 问题内容: 这可能是太多基于意见的问题,但这里有: 我发现了与实体框架和数据库迁移有关的一个有趣的怪癖。看来,每当我们创建外键时,它也会在该列上创建索引。 我读了一个SO问题:实体框架代码第一个外键添加索引,每个人似乎都说这是一个很好的,有效的主意,但我不知道怎么做。索引列是非常特定于环境的。例如,EF索引了我的表上几乎从来没有(〜1%)用于搜索的FK,并且也索引了源表,这意味着即使我加入其他表,

  • 如何根据对象数组的条件获取所有索引?我已经尝试了下面的代码,但是它只返回第一次出现的代码。

  • 我在所有日志中都有一个字段“location”,其中包含“lat”和“lon”字段。弹性体上的测井指数不同。其中一些转到“logstash YYY-MM-dd”,另一些转到“异常YYYY-MM-dd”,还有许多其他。但我不能让它们都将位置字段映射为geo_point。我知道默认映射和动态映射,但我无法使其工作。我不了解文档,也没有在网上找到明确的例子。我想要的是,elastic管理来自任何日志的所

  • 我有一个数组: 我调用它的拼接函数来删除索引之前的所有项: 我只是好奇有没有类似于splice的功能来移除一个索引后的所有项目: 伪码

  • 问题内容: 我想列出ElasticSearch服务器上存在的所有索引。我尝试了这个: 但这给了我这个: 我想要所有索引的列表。 问题答案: 有关集群中所有索引的简要列表,请致电 这将为您提供索引及其别名的列表。 如果要打印精美,请添加: 如果调用索引和,结果将类似于以下内容: