![]() |
1
25
把一个索引想象成一本书后面的索引。这是一个与书内容完全分离的区域,如果你在寻找某个特定的值,你可以去索引并查找它(索引是有序的,所以在那里查找比扫描书的每一页要快得多)。 索引条目有一个页码,因此您可以快速转到查找主题的页面。数据库索引非常相似;它是数据库中相关信息(索引中包含的字段)的有序列表,包含数据库查找匹配记录的信息。 所以。。。当您有需要经常搜索的信息时,可以创建索引。普通索引对于“partial”seeks-like查询没有帮助,但是当您需要获得一组结果(其中字段X具有特定值)时,它们会阻止DBMS“扫描”整个表,以查找匹配值。 当需要对列进行排序时,它们也有帮助。 另一件要记住的事情是:如果DBMS允许您创建具有多个字段的单个索引,那么一定要研究这样做的效果,特别是对DBMS的影响。包含多个字段的索引只有在查询中使用所有这些字段时才可能完全(或完全)有用。相反,对于按多个字段过滤/排序的查询,为单个表设置多个索引(每个索引有一个字段)可能没有多大帮助。 您提到了全文索引和PKs(主键)。这些索引与常规索引不同,尽管它们通常有类似的用途。
但是在MSSQL(查看DBMS文档以获取信息)中,如果愿意,可以将聚集索引更改为其他字段。有时这是在
全文索引完全是不同种类的野兽。它们使用了一些相同的原则,但它们所做的与我所描述的普通索引并不完全相同。另外:在一些数据库管理系统中,
它们还可以经常搜索相似的单词、不同的时态、常见的拼写错误等等,并且通常忽略噪音词。它们的工作方式不同,这就是为什么它们可能还需要不同的运算符来使用它们。(再次检查本地文档中的DBMS!) |
![]() |
2
1
这个答案是特定于Oracle的,但是答案中的要点适用于大多数关系数据库系统 |
![]() |
User987 · SQL Server Web与标准版 7 年前 |