Performance

為了提高 SQL 性能,為什麼不放大量 RAM 而不是擁有更快的硬碟呢?

  • February 15, 2012

人們不斷告訴我,為了提高 SQL 伺服器的性能,購買 RAID 5 等可能的最快硬碟。

所以我在想,與其把所有的錢都花在 RAID 5 和超高速硬碟上(順便說一句,這並不便宜),為什麼不直接買幾噸記憶體呢?我們知道 SQL 伺服器會將數據庫載入到記憶體中。記憶體比任何硬碟都快。

為什麼不在伺服器上塞進 100 GB 的 RAM?然後就用普通的 SCSI 硬碟和 RAID 1。那不是更便宜更快嗎?

你的分析很好——在某種程度上——它絕對會讓事情變得更快。不過,您仍然需要考慮其他幾個問題:

  1. 不是每個人都能買得起足夠的記憶體;當你有數 TB 的數據時,你必須把它放在磁碟上一段時間。如果您沒有太多數據,那麼任何東西都足夠快。
  2. 數據庫的寫入性能仍然會受到磁碟的限制,因此您可以信守數據實際儲存的承諾。

如果你有一個小數據集,或者不需要將它持久化在磁碟上,那麼你的想法並沒有錯。像VoltDB這樣的工具正在努力減少 RDBMS 實現中的舊假設所產生的成本,這些假設限制了純記憶體中的性能。

(順便說一句,告訴您使用 RAID-5 來提高數據庫性能的人可能不適合聽這個主題,因為它幾乎從來都不是最佳選擇 - 它具有良好的讀取性能,但寫入性能較差,並且寫入幾乎總是生產約束——因為您可以將 RAM 投入記憶體以解決大多數讀取端性能問題。)

引用自:https://serverfault.com/questions/359414