在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ 數(shù)據(jù)庫/ PostgreSQL索引
PostgreSQL LIKE條件
PostgreSQL截?cái)啾恚═RUNCATE TABLE語句)
C/C++連接PostgreSQL數(shù)據(jù)庫
PostgreSQL別名
PostgreSQL日期和時(shí)間函數(shù)
PostgreSQL NOT IN條件
PostgreSQL歷史
PostgreSQL事務(wù)
PostgreSQL AND & OR條件
PostgreSQL NULL值
PostgreSQL教程
PostgreSQL更新數(shù)據(jù)(UPDATE語句)
PostgreSQL ORDER BY子句
PostgreSQL分組(GROUP BY子句)
PostgreSQL數(shù)據(jù)類型
PostgreSQL特點(diǎn)
PostgreSQL刪除數(shù)據(jù)庫
PostgreSQL UNIONS子句
PostgreSQL AND條件
PostgreSQL索引
PostgreSQL刪除表
Perl連接PostgreSQL數(shù)據(jù)庫
PostgreSQL視圖
PostgreSQL修改表(ALTER TABLE語句)
PostgreSQL全外連接
PostgreSQL命令語法大全
PostgreSQL查詢數(shù)據(jù)(SELECT語句)
PostgreSQL自動(dòng)遞增
PostgreSQL左外連接
PostgreSQL創(chuàng)建表
PostgreSQL模式(架構(gòu))
PostgreSQL觸發(fā)器
PostgreSQL安裝(Windows)
PostgreSQL NOT條件
PostgreSQL Having子句
PostgreSQL函數(shù)(存儲(chǔ)過程)
Java連接PostgreSQL數(shù)據(jù)庫
PostgreSQL權(quán)限
PostgreSQL OR條件
PostgreSQL創(chuàng)建數(shù)據(jù)庫
PostgreSQL BETWEEN條件
PostgreSQL IN條件
Python連接PostgreSQL數(shù)據(jù)庫
PostgreSQL刪除數(shù)據(jù)(DELETE語句)
PostgreSQL子查詢
PostgreSQL右外連接
PostgreSQL插入數(shù)據(jù)(INSERT語句)
PostgreSQL是什么?
PostgreSQL連接(內(nèi)連接)
PHP連接PostgreSQL數(shù)據(jù)庫
PostgreSQL條件查詢
PostgreSQL鎖
PostgreSQL跨連接(CROSS JOIN)

PostgreSQL索引

什么是索引?

索引是用于加速從數(shù)據(jù)庫檢索數(shù)據(jù)的特殊查找表。數(shù)據(jù)庫索引類似于書的索引(目錄)。 索引為出現(xiàn)在索引列中的每個(gè)值創(chuàng)建一個(gè)條目。

數(shù)據(jù)庫索引的重要特點(diǎn)

  • 索引使用SELECT查詢和WHERE子句加速數(shù)據(jù)輸出,但是會(huì)減慢使用INSERTUPDATE語句輸入的數(shù)據(jù)。

  • 您可以在不影響數(shù)據(jù)的情況下創(chuàng)建或刪除索引。

  • 可以通過使用CREATE INDEX語句創(chuàng)建索引,指定創(chuàng)建索引的索引名稱和表或列名稱。
  • 還可以創(chuàng)建一個(gè)唯一索引,類似于唯一約束,該索引防止列或列的組合上有一個(gè)索引重復(fù)的項(xiàng)。

PostgreSQL創(chuàng)建索引

CREATE INDEX語句用于創(chuàng)建PostgreSQL索引。

語法

CREATE INDEX index_name ON table_name;

索引類型

PostgreSQL中有幾種索引類型,如B-tree,Hash,GiST,SP-GiSTGIN等。每種索引類型根據(jù)不同的查詢使用不同的算法。 默認(rèn)情況下,CREATE INDEX命令使用B樹索引。

單列索引

如果僅在一個(gè)表列中創(chuàng)建索引,則將其稱為單列索引。

語法:

CREATE INDEX index_name  
ON table_name (column_name);

示例

我們有一個(gè)名為“EMPLOYEES”的表,具有以下數(shù)據(jù):

在表“EMPLOYEES”的“name”列上創(chuàng)建一個(gè)名為“employees_index”的索引。

執(zhí)行以下創(chuàng)建語句:

CREATE INDEX employees_index  
ON EMPLOYEES (name);

執(zhí)行結(jié)果如下 -

在這里,您可以看到在該表上創(chuàng)建了一個(gè)名為“employees_index”的索引 -

多列索引

如果通過使用表的多個(gè)列創(chuàng)建索引,則稱為多列索引。

語法:

CREATE INDEX index_name  
ON table_name (column1_name, column2_name);

讓我們在同一個(gè)表“EMPLOYEES”上創(chuàng)建一個(gè)名為“multicolumn_index”的多列索引

執(zhí)行以下創(chuàng)建查詢語句:

CREATE INDEX multicolumn_index  
ON EMPLOYEES (name, salary);

執(zhí)行結(jié)果如下 -

唯一索引

創(chuàng)建唯一索引以獲取數(shù)據(jù)的完整性并提高性能。它不允許向表中插入重復(fù)的值,或者在原來表中有相同記錄的列上也不能創(chuàng)建索引。

語法:

CREATE UNIQUE INDEX index_name  
on table_name (column_name);

例如,在employees表的name字段上創(chuàng)建一個(gè)唯一索引,將會(huì)提示錯(cuò)誤 -

CREATE UNIQUE INDEX unique_on_name  
on employees (name);

如下所示(name字段中有兩個(gè)Minsu的值) -

PostgreSQL刪除索引

DROP INDEX方法用于刪除PostgreSQL中的索引。 如果你放棄一個(gè)索引,那么它可以減慢或提高性能。

語法:

DROP INDEX index_name;

作為一個(gè)示例,我們現(xiàn)在來刪除在前面創(chuàng)建的名為“multicolumn_index”的索引。

執(zhí)行以下查詢語句:

DROP INDEX multicolumn_index;

現(xiàn)在,您可以看到名為“multicolumn_index”的索引已被刪除/刪除。查看 employees 表的結(jié)構(gòu) -

什么時(shí)候應(yīng)該避免使用索引?

  • 應(yīng)該避免在小表上使用索引。
  • 不要為具有頻繁,大批量更新或插入操作的表創(chuàng)建索引。
  • 索引不應(yīng)用于包含大量NULL值的列。
  • 不要在經(jīng)常操作(修改)的列上創(chuàng)建索引。