簡體   English   中英

Postgres 中的唯一約束是否會創建索引?

[英]Does the unique constraint in Postgres create an index?

假設我有一個如下所示的表:

CREATE TABLE products (
   product_no integer UNIQUE NOT NULL,
   name text,
   price numeric
);

然后,如果我將值插入表中,postgres(或任何類似的 DBMS)會實際檢查表的每一行還是自動創建索引? 如果沒有索引,這會很快變得昂貴 [O(N!)]。

是和否。 Postgres 檢查product_no是否尚未插入。 它通過檢查索引而不是單個行來實現。

唯一約束是使用索引實現的,因此檢查重復是 O(log n) 而不是 O(n)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM