我经常使用索引,但在某些情况下我仍然很难知道它们是在帮助还是在伤害。我遵循了一些指导方针,但我不确定它们是否好,也不确定它们的合理性。
在窄数据类型上创建索引比在宽数据类型(例如INT
over DATETIME
)上创建索引要好。
在多列上创建索引比在单列上创建更好。
最好在从未(或很少)更新的列上创建索引,而不是为频繁更改的列创建索引。
这些是好的指导方针吗?由于我不完全确定我为什么要遵循这些准则,您能否帮助解释每个准则的合理性以及它们何时不适用?
我试图了解如何为以下常见数据类型管理索引:1- 数字(整数、小数) 2- 字符串(Varchar、Char) 3- 日期时间
我有几个问题:
1-How the indexes are stored for different data types?
例如,如果有像 (100, 101, 100, 900, 700) 这样的数字数据和像 (AAA,BBB,CCC,AAA,ABC) 这样的字符串数据,numericcolumn 和 stringcolumn 索引如何将这些数据存储在磁盘上?
2-Is there any different between the retrieval of a Numeric & String indexes?
例如,如果我在 numericIndexed 列和 sringIndexes 列上尝试 SELECT 语句,它们是如何检索的?
3- SQL Server 和 Oracle 存储的索引是否不同?或者他们使用相同的逻辑?问候。