2010-08-16 35 views
1

我讀過很多網站存儲與數據分離的索引。如何將索引與Azure上的數據分開存儲?

具體地說Azure上,所述索引將被存儲在SQL天青和存儲在天青表存儲的數據。

這應該會提高性能,並允許您存儲更多的數據並高效地查詢它。

我不知道如何構建一個系統來做到這一點。有人可以解釋一下這個過程以及外部索引的實際工作原理嗎?

當你想在不同列上有二級索引時會發生什麼,這是如何工作的?

當你更新/刪除/添加數據時呢?指數+實際數據如何得到更新?

+0

什麼構成'分開'在這裏 - 在一個單獨的文件中,在一個單獨的盒子或單獨的大陸? – 2010-08-16 21:39:26

+0

該索引將存儲在Azure SQL中以及存儲在Azure表存儲中的數據中。 – rksprst 2010-08-16 21:46:41

回答

1

對於常規聚簇索引和非聚簇索引也是如此。聚簇索引保存來自表的所有數據,非聚簇索引僅包含索引的列,如果它是堆(表示沒有聚簇索引)或聚簇索引中的鍵,則表示行定位符返回表。

的多個索引你有更貴的更新,刪除和插入會因爲所有這些指標都維持在插入到表

所以,你可以對驅動器d和您的索引數據在驅動器E上的另一個文件組中

另外一個SQL Azure數據庫不支持堆表,一個表必須有一個聚簇索引。如果創建的表沒有聚集約束,則必須在表上允許插入操作之前創建聚簇索引。

2

如果你沒有綁定在Sql索引,嘗試索引引擎,如Lucene.Net。在我的項目中,我將數據存儲在Azure表存儲中,並將它們索引到Lucene索引中。 Lucene.Net有一個用於Azure的wrapper。 這樣你就不需要Sql了。表存儲比Azure Sql便宜。