Performance

在多個硬碟上分佈表

  • October 17, 2014

當我將數據庫表分佈在不同的硬碟上時,性能是否有所提高?

我需要同時訪問許多不同的模式,我想知道當我將表分佈在不同的硬碟上時,添加更多的硬碟是否會顯著提高性能。

因此,假設我有100 個表和 1 個硬碟驅動器100 個表和 10 個硬碟驅動器。這會有所作為嗎?還是我最好在 RAID 配置中連結硬碟?

更多的硬碟驅動器通常會提高理論 IO 性能。使用量的多少在方法上差別很大。在許多現實世界的應用程序中(對於較少數量的磁碟),IO 性能的提高甚至不是線性的。

更多磁碟不會提高性能的場景是例如達到(RAID)控制器限制的場景。較舊或廉價 (RAID) 控制器上的 10 個高端 SSD 通常會導致控制器成為限制因素,而不是磁碟。 RAID 級別在提供數據保護方面也至少與性能方面一樣重要。

RAID 1 中的 2 個磁碟(鏡像)為您提供零額外的寫入性能,但在良好的控制器上仍然會使讀取性能翻倍。

為某些任務手動分配(虛擬)磁碟可為這些任務提供有保證的 IO 路徑,從而允許這些任務具有一定級別的並發性,例如數據庫管理員喜歡做的事情。當然,這也限制了每個單獨任務的峰值性能。並且對於任何(手動)調整,出錯都會極大地影響性能:)

單個企業 15k SAS 旋轉磁碟通常提供大約 200-250 IOPS(每秒 IO 操作)。簡單地說,10 個磁碟將提供 10 倍。

如果在您的範例中主要使用一個表,則將該表分配給 1 個磁碟並將其他 99 個表放在其他剩餘磁碟上沒有可衡量的好處,實際上您仍將被限制在大約 200 IOPS。但是,在單個 RAID 10 卷上擁有所有 100 個表的情況下,您將擁有所有 10 個磁碟,因此 2000+ IOPS 用於讀取操作和 1000 IOPS(有效一半磁碟的資源,5 個磁碟,由於鏡像)用於寫入操作……大幅度增加。

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