五月婷婷丁香性爱|j久久一级免费片|久久美女福利视频|中文观看在线观看|加勒比四区三区二|亚洲裸女视频网站|超碰97AV在线69网站免费观看|有码在线免费视频|久久青青日本视频|亚洲国产AAAA

GaussDB索引常見(jiàn)問(wèn)題解答

GaussDB索引常見(jiàn)問(wèn)題解答

  • 什么是GaussDB索引?

    索引是為了加速對(duì)表中數(shù)據(jù)行的檢索而創(chuàng)建的一種分散的存儲(chǔ)結(jié)構(gòu)。

    索引是針對(duì)表而建立的,它是由數(shù)據(jù)頁(yè)面以外的索引頁(yè)面組成的,每個(gè)索引頁(yè)面中的行都會(huì)含有邏輯指針,以便加速檢索物理數(shù)據(jù)。 

    在數(shù)據(jù)庫(kù)關(guān)系圖中,可以在選定表的“索引/鍵”屬性頁(yè)中創(chuàng)建、編輯或刪除每個(gè)索引類(lèi)型。當(dāng)保存索引所附加到的表,或保存該表所在的關(guān)系圖時(shí),索引將保存在數(shù)據(jù)庫(kù)中。

  • 索引的作用

    (1)快速取數(shù)據(jù);

    (2)保證數(shù)據(jù)記錄的唯一性;

    (3)實(shí)現(xiàn)表與表之間的參照完整性;

    (4)在使用ORDER by、group by子句進(jìn)行數(shù)據(jù)檢索時(shí),利用索引可以減少排序和分組的時(shí)間。

  • 索引的優(yōu)缺點(diǎn)?

    優(yōu)點(diǎn):

    1.大大加快數(shù)據(jù)的檢索速度;

    2.創(chuàng)建唯一性索引,保證數(shù)據(jù)庫(kù)表中每一行數(shù)據(jù)的唯一性;

    3.加速表和表之間的連接;

    4.在使用分組和排序子句進(jìn)行數(shù)據(jù)檢索時(shí),可以顯著減少查詢中分組和排序的時(shí)間。


    缺點(diǎn):

    1.索引需要占物理空間。

    2.當(dāng)對(duì)表中的數(shù)據(jù)進(jìn)行增加、刪除和修改的時(shí)候,索引也要?jiǎng)討B(tài)的維護(hù),降低了數(shù)據(jù)的維護(hù)速度。

  • 如何設(shè)計(jì)索引?
    1. 使用數(shù)據(jù)庫(kù)索引實(shí)踐推薦的索引類(lèi)型。
    2. 索引設(shè)計(jì)建議使用推薦類(lèi)型,如果需要使用禁用、不推薦、限制使用的索引類(lèi)型,建議聯(lián)系GaussDB數(shù)據(jù)庫(kù)專(zhuān)家進(jìn)行評(píng)估。

    表1 數(shù)據(jù)庫(kù)索引實(shí)踐推薦

    1. 對(duì)于HASH分布表,主鍵和唯一索引必須包含分布鍵。
    2. 合理設(shè)計(jì)組合索引,避免冗余。
    3. 例如已對(duì)(a,b,c)創(chuàng)建索引,則不應(yīng)再單獨(dú)對(duì) (a)、(b)、(c)、(a,b)、(b,c)創(chuàng)建索引。
    4. 當(dāng)查詢時(shí)如果只帶有a字段上的過(guò)濾條件,一般也會(huì)利用組合索引進(jìn)行查詢。
    5. 不建議單表創(chuàng)建多個(gè)唯一索引。
    6. 同時(shí)維護(hù)多個(gè)唯一索引的開(kāi)銷(xiāo)遠(yuǎn)大于維護(hù)一個(gè)多列唯一索引,如果業(yè)務(wù)邏輯上多個(gè)唯一索引,與一個(gè)多列唯一索引等價(jià),應(yīng)使用多列唯一索引。
    7. 組合索引字段個(gè)數(shù)不超過(guò)5個(gè)。
    8. 禁止組合索引組合字符串的總長(zhǎng)度超過(guò)200。
    9. 索引(包括單列索引和復(fù)合索引)字段應(yīng)為NOT NULL字段。
    10. 同字段上創(chuàng)建索引的維護(hù)效率不同。數(shù)值類(lèi)型字段優(yōu)于字符類(lèi)型及其他數(shù)據(jù)類(lèi)型,因此對(duì)于考慮創(chuàng)建索引的ID、時(shí)間等字段,建議使用數(shù)值類(lèi)型進(jìn)行存儲(chǔ)。
    11. 建議在關(guān)聯(lián)列上創(chuàng)建索引。
    12. GaussDB支持HASH JOIN,但是當(dāng)內(nèi)表較小等RESCAN代價(jià)較低的情況下,仍然可能選擇NESTLOOP JOIN來(lái)完成關(guān)聯(lián)。如果通過(guò)EXPLAIN可以查看到NESTLOOP JOIN計(jì)劃,則可以通過(guò)在關(guān)聯(lián)列上創(chuàng)建索引,提高NESTLOOP JOIN效率。


  • 如何創(chuàng)建GaussDB索引?

    為了加速文本搜索,可以創(chuàng)建GIN索引。

    to_tsvector()函數(shù)有兩個(gè)版本。只輸一個(gè)參數(shù)的版本和輸兩個(gè)參數(shù)的版本。只輸一個(gè)參數(shù)時(shí),系統(tǒng)默認(rèn)采用default_text_search_config所指定的分詞器。

    請(qǐng)注意:創(chuàng)建索引時(shí)必須使用to_tsvector的兩參數(shù)版本。只有指定了分詞器名稱的全文檢索函數(shù)才可以在索引表達(dá)式中使用。這是因?yàn)樗饕膬?nèi)容必須不受default_text_search_config的影響,否則索引內(nèi)容可能不一致。由于default_text_search_config的值可以隨時(shí)調(diào)整,從而導(dǎo)致不同條目生成的tsvector采用了不同的分詞器,并且沒(méi)有辦法區(qū)分究竟使用了哪個(gè)分詞器。正確地轉(zhuǎn)儲(chǔ)和恢復(fù)這樣的索引也是不可能的。

    因?yàn)樵谏鲜鰟?chuàng)建索引中to_tsvector使用了兩個(gè)參數(shù),只有當(dāng)查詢時(shí)也使用了兩個(gè)參數(shù),且參數(shù)值與索引中相同時(shí),才會(huì)使用該索引。也就是說(shuō),WHERE to_tsvector('english', body) @@ 'a & b' 可以使用索引,但WHERE to_tsvector(body) @@ 'a & b'不能使用索引。這確保只使用這樣的索引——索引各條目是使用相同的分詞器創(chuàng)建的。

    索引中的分詞器名稱由另一列指定時(shí)可以建立更復(fù)雜的表達(dá)式索引。例如:

    其中body是pgweb表中的一列。當(dāng)對(duì)索引的各條目使用了哪個(gè)分詞器進(jìn)行記錄時(shí),允許在同一索引中存在混合分詞器。在某些場(chǎng)景下這將是有用的。

    例如,文檔集合中包含不同語(yǔ)言的文檔時(shí)。再次強(qiáng)調(diào),打算使用索引的查詢必須措辭匹配,例如,WHERE to_tsvector(config_name, body) @@ 'a & b'與索引中的to_tsvector措辭匹配。

    索引甚至可以連接列:

    另一個(gè)方法是創(chuàng)建一個(gè)單獨(dú)的tsvector列控制to_tsvector的輸出。下面的例子是title和body的連接, 當(dāng)其它是NULL的時(shí)候,使用coalesce確保一個(gè)字段仍然會(huì)被索引:

    然后為加速搜索創(chuàng)建一個(gè)GIN索引:

    現(xiàn)在,就可以執(zhí)行一個(gè)快速全文搜索了:

    相比于一個(gè)表達(dá)式索引,單獨(dú)列方法的一個(gè)優(yōu)勢(shì)是:它沒(méi)有必要在查詢時(shí)明確指定分詞器以便能使用索引。

    正如上面例子所示,查詢可以依賴于default_text_search_config。另一個(gè)優(yōu)勢(shì)是搜索比較快速,因?yàn)樗鼪](méi)有必要重新 利用to_tsvector調(diào)用來(lái)驗(yàn)證索引匹配。表達(dá)式索引方法更容易建立,且它需要較少的磁盤(pán)空間,因?yàn)閠svector形式?jīng)]有明確存儲(chǔ)。

連接云數(shù)據(jù)庫(kù)GaussDB的方式

實(shí)例連接方式介紹和通過(guò)數(shù)據(jù)管理服務(wù) DAS、內(nèi)網(wǎng)、公網(wǎng)連接實(shí)例


  • 實(shí)例連接方式介紹

    GaussDB提供使用內(nèi)網(wǎng)、公網(wǎng)和數(shù)據(jù)管理服務(wù)(Data Admin Service,簡(jiǎn)稱DAS)的連接方式。

  • DAS連接

    通過(guò)華為云數(shù)據(jù)管理服務(wù)(Data Admin Service,簡(jiǎn)稱DAS)這款可視化的專(zhuān)業(yè)數(shù)據(jù)庫(kù)管理工具,可獲得執(zhí)行SQL、高級(jí)數(shù)據(jù)庫(kù)管理、智能化運(yùn)維等功能,做到易用、安全、智能地管理數(shù)據(jù)庫(kù)。GaussDB默認(rèn)開(kāi)通DAS連接權(quán)限。

  • 內(nèi)網(wǎng)連接

    當(dāng)應(yīng)用部署在彈性云服務(wù)器上,且該彈性云服務(wù)器與GaussDB實(shí)例處于同一區(qū)域,同一VPC時(shí),建議單獨(dú)使用內(nèi)網(wǎng)IP連接彈性云服務(wù)器與GaussDB實(shí)例。

  • 公網(wǎng)連接

    不能通過(guò)內(nèi)網(wǎng)IP地址訪問(wèn)GaussDB實(shí)例時(shí),使用公網(wǎng)訪問(wèn),建議單獨(dú)綁定彈性公網(wǎng)IP連接彈性云服務(wù)器(或公網(wǎng)主機(jī))與GaussDB實(shí)例。

如何使用驅(qū)動(dòng)連接云數(shù)據(jù)庫(kù)GaussDB 如何使用驅(qū)動(dòng)連接云數(shù)據(jù)庫(kù)GaussDB

支持使用JDBC、ODBC等驅(qū)動(dòng)連接GaussDB數(shù)據(jù)庫(kù)

支持使用JDBC、ODBC等驅(qū)動(dòng)連接GaussDB數(shù)據(jù)庫(kù)

使用libpq連接云數(shù)據(jù)庫(kù)GaussDB

云數(shù)據(jù)庫(kù)GaussDB主備版部署形態(tài)未對(duì)此接口在應(yīng)用程序開(kāi)發(fā)場(chǎng)景下的使用做驗(yàn)證。

libpq
使用ODBC連接云數(shù)據(jù)庫(kù)GaussDB

云數(shù)據(jù)庫(kù)GaussDB提供對(duì)ODBC3.5的支持。應(yīng)用程序通過(guò)GaussDB驅(qū)動(dòng)連接數(shù)據(jù)庫(kù)。

ODBC
使用JDBC連接GaussDB數(shù)據(jù)庫(kù)

JDBC是一種用于執(zhí)行SQL語(yǔ)句的Java API,可以為多種關(guān)系數(shù)據(jù)庫(kù)提供統(tǒng)一訪問(wèn)接口,云數(shù)據(jù)庫(kù)GaussDB提供了對(duì)JDBC 4.0特性的支持。

JDBC
使用Psycopg連接云數(shù)據(jù)庫(kù)GaussDB

Psycopg是一種用于執(zhí)行SQL語(yǔ)句的PythonAPI,可以為PostgreSQL、云數(shù)據(jù)庫(kù)GaussDB提供統(tǒng)一訪問(wèn)接口。

Psycopg