2012-01-30 70 views
1

我爲我們的項目使用Postgresql數據庫並進行一些性能測試。我們需要插入數百萬條帶有索引列的記錄。我們有5列在表中。我在整數上創建索引只有性能很好,但是當我在文本列上創建索引時,性能也降低了1/8倍。我的問題是,如何在文本列上使用索引插入數據時提高性能?如何提高文本列索引的插入速度

回答

1

簡短回答是你不能

衆所周知,關於分貝列添加索引就像是一個2雙刃劍:

  • 上一個(正)方面,它增加了改進的速度給你讀查詢
  • 另一方面,它增加了性能損失insert/update/delete操作和數據會佔用更多一點的磁盤空間

一個可能的解決辦法是使用一些全文搜索引擎喜歡Sphinx這將索引文本實體在DB

+0

謝謝!如果我錯了,請糾正我。全文搜索引擎用於提高讀取查詢的性能。這對提高寫入性能無濟於事。 – Saurabh 2012-01-30 10:51:03

+0

的確如此 - 但是你可以保留你的桌子,這個桌子底下有很重的插入物,基本上沒有任何索引(當然除了PK) – 2012-01-30 10:53:33

+0

所以,你的數據庫表沒有索引 - 這保證了快速的插入速度 - 而你將使用Sphinx或SOLR(全文搜索引擎)來查詢 – 2012-01-30 10:54:55