2016-11-15 82 views
0

對於VoltDB,在創建表,我使用的主鍵,以防止違規內容。這將自動創建主鍵索引,這是一個平衡樹。我也創建了表的哈希索引,我想使用哈希索引,而不是使用主鍵索引。有什麼設置可以在執行查詢時使用Hash索引。如何防止在VoltDB中使用默認主鍵索引?

回答

1

VoltDB使用慣例來確定是否使用紅黑樹索引或哈希索引。約定是在索引名稱中包含子字符串「散列」(不區分大小寫)。它可以是前綴,後綴或名稱中間的某個地方。

以我的經驗,因爲該指數是完全在內存中,是樹和哈希索引之間的性能差異很小。可以嘗試兩種方法,並比較性能和空間使用情況,以確定哪一個最好。

而且,還有用於聲明表的主鍵的幾個語法風格。你不必給它一個名字,但你可以,這樣可以讓你申報你是否希望它是一個樹或哈希索引。不應該僅僅因爲主鍵索引不是你想要的就創建重複索引。下面是兩個例子:

CREATE TABLE Version (
    Major SMALLINT NOT NULL, 
    Minor SMALLINT NOT NULL, 
    baselevel INTEGER NOT NULL, 
    ReleaseDate TIMESTAMP, 
    CONSTRAINT Version_Hash_Idx PRIMARY KEY 
     (Major, Minor, Baselevel) -- hash index 
); 

CREATE TABLE Version (
    Major SMALLINT NOT NULL, 
    Minor SMALLINT NOT NULL, 
    baselevel INTEGER NOT NULL, 
    ReleaseDate TIMESTAMP, 
    PRIMARY KEY (Major, Minor, Baselevel) -- default tree index 
);