0
我想使用SHA 256散列作爲大數據存儲上所有路徑的關鍵。 現在我想知道是否應該使用像mysql這樣的數據庫來存儲鍵或像lucene這樣的索引工具。 我有大約10億個SHA 256鍵來搜索它們。使用哪個工具(mysql或lucene),我可以更快地搜索特定的SHA 256密鑰?什麼是更快的MySQL主鍵或lucene索引
在此先感謝您的回答。
我想使用SHA 256散列作爲大數據存儲上所有路徑的關鍵。 現在我想知道是否應該使用像mysql這樣的數據庫來存儲鍵或像lucene這樣的索引工具。 我有大約10億個SHA 256鍵來搜索它們。使用哪個工具(mysql或lucene),我可以更快地搜索特定的SHA 256密鑰?什麼是更快的MySQL主鍵或lucene索引
在此先感謝您的回答。
理論上Lucene應該更快 - 它有恆定的時間基於散列的查找這種領域和規模容易。
MySQL索引是基於樹的,因此查找時間將以對數形式增長。
我確實比較了大數據集的性能,儘管是爲了不同的目的,並且我已經證實了這一點。
這就是說有很多方法來優化兩者。根據MySQL的版本,有不同的索引選項,你也可以對錶格進行分區,也可以使用MySQL的全文本功能。 Lucene也有很多技巧。最終選擇歸結爲硬件和每秒查找次數以及其他輔助因素的細節。
沒有我知道的數據。 – duffymo
這是一個基於意見的問題,並非真正適合於stackoverflow。目前還不清楚,因爲除了在索引中查找某些內容之外,我們對您的應用程序以及您的數據庫所需的內容不瞭解。 –
具有「隨機」PK(sha-1,md5,UUID等)的10億行 - 它將以與磁盤基本相同的速度運行 - 每行獲取一個磁盤命中。 (從旋轉磁盤隨機獲取所有行的幾年時間)!我懷疑Lucene是否可以更快地運行,但我不知道。 (我假設你沒有足夠的內存來存放整個表格。) –