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

云數(shù)據(jù)庫GaussDB索引常見問題解答

云數(shù)據(jù)庫GaussDB索引常見問題解答

  • 什么是GaussDB索引?

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

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

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

  • 索引的作用

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

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

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

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

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

    優(yōu)點:

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

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

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

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


    缺點:

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

    2.當對表中的數(shù)據(jù)進行增加、刪除和修改的時候,索引也要動態(tài)的維護,降低了數(shù)據(jù)的維護速度。

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

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

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


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

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

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

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

    因為在上述創(chuàng)建索引中to_tsvector使用了兩個參數(shù),只有當查詢時也使用了兩個參數(shù),且參數(shù)值與索引中相同時,才會使用該索引。也就是說,WHERE to_tsvector('english', body) @@ 'a & b' 可以使用索引,但WHERE to_tsvector(body) @@ 'a & b'不能使用索引。這確保只使用這樣的索引——索引各條目是使用相同的分詞器創(chuàng)建的。

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

    其中body是pgweb表中的一列。當對索引的各條目使用了哪個分詞器進行記錄時,允許在同一索引中存在混合分詞器。在某些場景下這將是有用的。

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

    索引甚至可以連接列:

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

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

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

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

    正如上面例子所示,查詢可以依賴于default_text_search_config。另一個優(yōu)勢是搜索比較快速,因為它沒有必要重新 利用to_tsvector調(diào)用來驗證索引匹配。表達式索引方法更容易建立,且它需要較少的磁盤空間,因為tsvector形式?jīng)]有明確存儲。

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

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


  • 實例連接方式介紹

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

  • DAS連接

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

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

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

  • 公網(wǎng)連接

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

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

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

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

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

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

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

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

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

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

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

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

Psycopg