Léo*_* 준영 8 postgresql indexing
INDEX表达式有什么作用?最后的一个例子:
CREATE TABLE tags (
tag_id varchar(255) NOT NULL,
"{Users}{userID}question_id" int4 NOT NULL,
tag varchar(20),
CONSTRAINT tag
PRIMARY KEY (tag_id));
CREATE INDEX tags_tag
ON tags (tag);
Run Code Online (Sandbox Code Playgroud)
Ada*_*kin 10
一个指数是一个数据库结构,可以帮助到数据库中,当搜索基于索引的字段(S)的各行的访问速度.
在您的示例中,该CREATE INDEX语句使用列创建tags_tag在表上命名的索引.如果要根据字段从表中搜索行,数据库可能会使用索引更有效地查找行.如果没有索引,数据库可能不得不求助于对表的完全扫描,这可能需要更长的时间(取决于许多因素,如表的大小,值的分布,确切的查询条件).不同的数据库还支持不同类型的索引,可用于以不同方式搜索数据.tagstagtag
索引也有一个缺点:对于每个索引,该表的写入速度都会下降.如果插入一行,拥有索引意味着除了数据库写入行本身之外,它还必须更新索引.
确定将索引放在哪些列上可能会非常棘手,而且一如既往,针对实际数据的基准测试或实际查询是衡量性能的最准确方法.通常,您将需要要搜索的列的索引.因此,如果你可能想要查找一行,tag那么在那里放一个索引肯定是有意义的.但是如果你有一个地址簿,你(可能)不需要搜索街道,邮政编码或电话号码,所以它不值得写入性能.
您的主键列几乎总是有一个由数据库自动生成的索引.如果要保持特定列的值唯一,UNIQUE INDEX可以创建一个来强制执行此操作.
这个 SO问题询问数据库索引的经验法则,这可能很有用.
| 归档时间: |
|
| 查看次数: |
4115 次 |
| 最近记录: |