中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

postgresql——索引-創(chuàng)新互聯(lián)

postgresql的索引

在浦口等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供做網(wǎng)站、網(wǎng)站設(shè)計(jì) 網(wǎng)站設(shè)計(jì)制作按需網(wǎng)站建設(shè),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站設(shè)計(jì),全網(wǎng)營銷推廣,外貿(mào)網(wǎng)站制作,浦口網(wǎng)站建設(shè)費(fèi)用合理。

postgresql提供的索引類型有:B-tree、hash、gist和gin。大多情況下,B-tree索引比較常用,用戶可以使用create index命令創(chuàng)建一個B-tree索引。

1、B-tree索引:

  B-tree適合處理那些能夠按順序存儲的數(shù)據(jù),比如對于一些字段涉及使用:< ,<= ,= ,>= 或 >操作符之一進(jìn)行比較的時候,可以建立一個索引。

也可以使用B-tree索引搜索來實(shí)現(xiàn)與這些運(yùn)算符的組合相同的構(gòu)造,如BETWEEN和IN。此外,索引列上的IS NULL或IS NOT NULL條件可以與B-tree索引一起使用。

 對于涉及模式匹配運(yùn)算符LIKE的查詢,優(yōu)化器還可以使用B-tree索引,如果模式是常量,并且錨定到字符串的開頭,例如col LIKE 'foo%'或 col?'^ foo',但不能是col LIKE'%bar'。但是,如果您的數(shù)據(jù)庫不使用C語言環(huán)境,則需要使用特殊的運(yùn)算符類創(chuàng)建索引,以支持對模式匹配查詢的索引;見下文第11.9節(jié)。也可以對 ILIKE和?*使用B-tree索引,但只有當(dāng)模式以非字母字符(即不受大小寫轉(zhuǎn)換影響的字符)開始時才可以。

2、hash索引:

 hash索引只能處理簡單的等于比較。當(dāng)一個索引的列涉及使用=操作符進(jìn)行比較的時候,查詢規(guī)劃器會考慮使用hash索引。

Hash索引操作目前不記錄WAL-log,所以如果有沒有寫入的更改,Hash索引可能需要在數(shù)據(jù)庫崩潰后用REINDEX重建。此外,在初始基本備份之后,不會通過流式或基于文件的復(fù)制來復(fù)制Hash索引的更改,因此它們對隨后使用它們的查詢給出錯誤的答案。由于這些原因,目前不鼓勵使用Hash索引。

3、gist索引:

  gist索引不是單獨(dú)一種索引類型,而是一種架構(gòu),可以在這種架構(gòu)上實(shí)現(xiàn)很多不同的索引策略。因此,可以使用gist索引的特定操作符類型高度依賴于索引策略(操作符類 )

GiST索引不是一種單一的索引,而是可以實(shí)現(xiàn)許多不同索引策略的基礎(chǔ)設(shè)施。因此,可以使用GiST索引的特定運(yùn)算符根據(jù)索引策略(運(yùn)算符類)而變化。

4、GIN索引

  GIN索引是反轉(zhuǎn)索引,可以處理包含多個鍵的值(比如數(shù)組)。與gist類似,gin支持用戶定義的索引策略,可以使用GIN索引的特定操作符類型根據(jù)索引策略的不同而不同 。

索引的設(shè)計(jì)原則:

①:索引并非越多越好。如果一個表中有大量的索引,那么不僅會占用大量磁盤空間,還會影響:insert、delete、update等語句的性能,因?yàn)楦谋碇械臄?shù)據(jù)時,索引也會進(jìn)行調(diào)整和更新。

②:避免對經(jīng)常更新的表進(jìn)行過多索引,并且索引中的列要盡可能少。對經(jīng)常用于查詢的字段應(yīng)該創(chuàng)建索引,但要避免添加不必要的字段。

③:數(shù)據(jù)量小的表最好不要使用索引。數(shù)據(jù)較少時,查詢花費(fèi)的時間可能比遍歷索引的時間還要短,索引可能不會產(chǎn)生優(yōu)化效果。

④:在條件表達(dá)式中經(jīng)常用到的不同值較多的列上建立索引,在不同值少的列上不要建立索引。

⑤:當(dāng)唯一性是某種數(shù)據(jù)本身的特征時,指定唯一索引。使用唯一索引能夠確保定義的列的數(shù)據(jù)完整性,提高查詢速度。

⑥:在頻繁進(jìn)行排序或分組(進(jìn)行g(shù)roup by或order by操作)的列上建立索引。如果待排序的列有多個,可以在這些列上建立組合索引。

---常見操作:(注意:默認(rèn)創(chuàng)建的是B-tree索引)

基本語法:

create [unique |fulltext |spatial] index index_name on table_name (col_name[length],....) [ ASC | DESC ]

1、創(chuàng)建普通索引:B-tree索引

create index idx_contacts_name on contacts(name);

--創(chuàng)建唯一索引:

create unique index idx_emp on emp(id);

--創(chuàng)建組合索引:

create index idx_emp on emp(id,name);

2、數(shù)組索引

create index idx_contacts_phone on contacts using gin(phone);

注:phone在contacts表中是一個數(shù)組類型

3、降序索引

create index idx_contacts_name on contacts(name desc);

4、指定存儲參數(shù)

create index idx_contacts_name on contacts(name) with(fillfactor=50);

注:fillfactor是常用的存儲參數(shù)

5、指定空值排在前面

create index idx_contacts_name on contacts(name desc nulls first);

6、避免創(chuàng)建索引的長時間阻塞,可以在index關(guān)鍵字后面增加concurrently關(guān)鍵字,可以減少索引的阻塞時間

create index concurrently idx_contacts_name on contacts(name desc);

注意,重建索引時不支持concurrently ,可以新建一個索引,然后刪除舊索引,另外并發(fā)索引被強(qiáng)制取消,可能會留下無效索引,這個索引將會導(dǎo)致更新變慢,如果是唯一索引,還會導(dǎo)致插入重復(fù)值失敗。

7、修改索引

索引重命名:alter index name rename to new_name;

設(shè)置表空間:alter index name set tablespace tablespace_name;

設(shè)置存儲參數(shù):alter index name set(storage_parameter=value[,...])

重設(shè)存儲參數(shù):alter index name reset(storeage_parameter[,...])

8、刪除索引

drop index if exists idx_emp;

8、cascade會把索引和依賴索引的對象全部刪除

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

網(wǎng)頁標(biāo)題:postgresql——索引-創(chuàng)新互聯(lián)
分享地址:http://www.rwnh.cn/article14/jdgde.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)公司、域名注冊、標(biāo)簽優(yōu)化網(wǎng)站設(shè)計(jì)、網(wǎng)站導(dǎo)航、ChatGPT

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)
乐亭县| 弥勒县| 上林县| 洛扎县| 汉中市| 巩留县| 长武县| 临泉县| 肥西县| 邵武市| 合阳县| 贡觉县| 若尔盖县| 桐乡市| 沾益县| 潮州市| 阿荣旗| 宁晋县| 若尔盖县| 辽中县| 辛集市| 栖霞市| 潍坊市| 徐汇区| 尉氏县| 襄樊市| 丹阳市| 湖北省| 瑞昌市| 湘阴县| 洞头县| 平昌县| 都江堰市| 永春县| 汉寿县| 伊宁市| 敦化市| 麦盖提县| 松溪县| 宁海县| 和林格尔县|