加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

postgresql – Postgres中的INDEX?

发布时间:2020-12-13 16:18:16 所属栏目:百科 来源:网络整理
导读: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); index是一种数据库
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);
index是一种数据库结构,当根据索引中的字段进行搜索时,可以帮助加快对数据库各行的访问.

在您的示例中,CREATE INDEX语句使用column标记在表标记上创建名为tags_tag的索引.如果要根据标记字段从表中搜索行,则数据库可能会使用索引更有效地查找行.如果没有索引,数据库可能不得不求助于对表的完整扫描,这可能需要更长的时间(取决于许多因素,如表的大小,值的分布,确切的查询条件).不同的数据库还支持不同类型的索引,可用于以不同方式搜索数据.

索引也有一个缺点:对于每个索引,该表的写入速度都会下降.如果插入一行,拥有索引意味着除了数据库写入行本身之外,它还必须更新索引.

确定将索引放在哪些列上可能会非常棘手,而且一如既往,基准测试或针对实际数据的实际查询是衡量性能的最准确方法.通常,您将需要要搜索的列的索引.因此,如果您可能希望按标记查找行,那么将索引放在那里肯定是有意义的.但是如果你有一个地址簿,你(可能)不需要搜索街道,邮编/邮政编码或电话号码,因此它不值得写入性能.

您的主键列几乎总是有一个由数据库自动生成的索引.如果要保持特定列的值唯一,可以创建UNIQUE INDEX来强制执行此操作.

This SO问题询问数据库索引的经验法则,这可能很有用.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读