解决方法
索引条目有一个页码,所以你可以快速去寻找你的主题的页面.数据库索引非常相似;它是数据库中相关信息的有序列表(索引中包含的字段),其中包含数据库的信息,以查找匹配的记录.
所以…当您有需要频繁搜索的信息时,您将创建一个索引.正常的索引不能帮助您“像”LIKE查询的“部分”查询,但是无论何时需要获取一组结果,其中字段X具有一定的值,它们会使DBMS无需“扫描”整个表,寻找匹配的值.
当您需要对列进行排序时,它们也会有所帮助.
要记住的另一件事如果DBMS允许您创建具有多个字段的单个索引,请确保调查这样做的影响,特定于您的DBMS.如果所有这些字段都在查询中使用,那么包含多个字段的索引可能只有完全(或全部)有用.相反,对于单个表的多个索引,每个索引具有一个字段可能对于由多个字段进行过滤/排序的查询可能没有太多(或任何)帮助.
您提到全文索引和PK(主键).这些不同于常规索引,尽管它们通常用于类似的目的.
首先,请注意,主键通常是一个索引(在MSsql中,实际上是一个“集群索引”),但这并不是特别的.作为一个例子,默认情况下,MSsql PK是一个聚簇索引;聚簇索引是特殊的,因为它们不是存储在其他地方的数据的单独位,而是数据本身按照聚簇索引按顺序排列在表中.这就是为什么一个流行的PK是一个int值,它是通过顺序增加值自动生成的.因此,集群索引会按照字段的值对数据进行排序.与传统词典进行比较条目本身由’key’排序,这是被定义的单词.
但是在MSsql中(检查您的DBMS文档以获取信息),您可以将Clustered Index更改为不同的字段.有时这是在基于datetime的字段上完成的.
全文索引完全是不同种类的野兽.他们使用一些相同的原则,但是他们正在做的与我正在描述的正常索引不完全相同.另外:在一些DBMS中,LIKE查询不使用全文索引;需要特殊查询运算符.
这些索引是不同的,因为它们的意图不是在列的整个值(数字,日期,一小段char数据)上查找/排序,而是在文本字段中查找单个单词/短语,被索引.
它们还可以经常地使搜索类似的词,不同的时态,常见的拼写错误等,并且通常忽略噪声词.他们工作的不同方式是为什么他们也可能需要不同的操作符来使用它们. (再次检查您的DBMS的本地文档!)