创建索引有多糟糕

Posted

技术标签:

【中文标题】创建索引有多糟糕【英文标题】:How bad is to create indexes 【发布时间】:2013-12-16 20:56:58 【问题描述】:

我有一个 SQL Compact 4.0 数据库,其中的表有大约 20 列和大约 1,000,000 行。

我遇到的问题是性能问题,因为用户可能会使用这 20 列来过滤结果,因此查询将花费大量时间来执行(可能大约一分钟)。

出于测试目的,我为这些列创建了索引,虽然性能非常好,但我想知道这样做有什么问题吗?

谢谢。

【问题讨论】:

【参考方案1】:

问题是插入需要更多时间(或其他表修改)和索引文件大小。

如果您的应用程序主要用于查询庞大的数据库,您可能会很好地使用这个捕获,并且基本上可以在没有捕获的情况下提高性能。

如果插入或其他重新索引表修改频繁发生,您将必须平衡索引数量,以便最重要任务的性能最佳,而不太重要的任务不会那么快。

没有catch你不能做的是保持选择和插入速度都超快。

【讨论】:

【参考方案2】:

每个索引意味着更长的插入/删除时间,因为必须重新索引表。所以,如果你的插入/删除比选择多,最好不要做。

【讨论】:

以上是关于创建索引有多糟糕的主要内容,如果未能解决你的问题,请参考以下文章

具有更多熵的 uniqid() 创建副本有多容易?

Hibernate索引表达式

数据库统计有多大用处

mysql的聚簇索引和非聚簇索引

mysql的聚簇索引和非聚簇索引

SQL SERVER全面优化-------索引有多重要?