Database-Recommendation

用於高容量、高 qps 的最佳數據庫和文件系統

  • July 5, 2011

我正在考慮為非常大量的非營利情況建立一個數據庫,這也將受益於高速更新和搜尋。

每個交易記錄相對較小(基本客戶資訊加上 10-12 個額外欄位),但必須通過不同的更新、報告和螢幕更新/修改數千次。(但我不需要每次更新的記錄,除了恢復。)

MYSQL 最適合這個嗎?什麼文件系統最有效?

謝謝。

G

幾乎任何數據庫伺服器都可以滿足您的需求,無論是 MySQL、Microsoft SQL Server、Oracle 等。所有 rdbms 的性能根據以下標準變化很大

  • 磁碟的 I/O 性能(通過高吞吐量連接獲得良好、快速、RAID 的磁碟)
  • 性能和 RAM 量(良好和快速的 RAM,還有很多
  • 文件系統成本(使用為數據庫設計的現代 fs。Ext4 工作正常,但有 OCFS2 是 Oracle 的文件系統,專為數據庫建構,甚至是 Oracle 的 RAW 儲存,在作業系統意義上甚至沒有文件系統。 . 數據庫完全管理磁碟。)
  • 正確索引的表結構(快速訪問數據取決於您的數據是否被正確索引,其中“正確”意味著最有效地滿足您的所有需求。)
  • 適當優化的查詢…通常與正確的索引一起使用;數據庫可以嘗試為您的查詢找出最佳優化,但它只能使用正確的索引和統計資訊來做到這一點。更好的是,微調你的查詢,這樣數據庫就不必自己做很多優化,你會更快更快樂。
  • 網路的 I/O 性能 - 如果您要傳入或傳出大量數據,網路性能將很重要(否則數據庫在通過線路發送數據時必須等待)。

一些真正無關緊要的事情(就性能而言):

  • 您的作業系統。Windows、Mac OSX、Linux 和其他任何現代的東西都可以作為作業系統層。無論如何,您的大部分工作都是在數據庫中完成的,偶爾需要在作業系統中完成任務。選擇一個可以簡化您的生活(而不是使其複雜化)的作業系統,但現代數據庫在大多數作業系統上都可以執行。
  • 您的數據庫引擎。是的,MySQL 和 Oracle 以及 MS SQL 等之間存在關鍵差異。這真的很重要嗎?如果您必須擁有某個**特定的功能,那麼無論如何都去爭取它,但最終,只要正確配置了硬體和表格,一切就足夠了。

真的,選擇一個數據庫、一個作業系統、一個文件系統,然後建構你的應用程序。有了良好的硬體和良好的表設計(帶有索引和優化),事情應該會順利進行。

**說了這麼多,**這就是我要選擇的(只是因為我最熟悉這種類型的配置):

  • RHEL / OEL / Ubuntu (作業系統)
  • Oracle Standard One(或 Standard,或 EE,取決於您的需要)(DB)
  • Ext4 日誌文件系統 (FS)
  • 2 個 2xCore 處理器 (>2.5GHz)
  • 8 GiB 記憶體(大約 1066 或更快的 MHz)
  • 1 TiB 硬碟(SATA,>=7200rpm)
  • 至少千兆乙太網

根據需要交換作業系統、文件系統和數據庫。你的機器應該尖叫並且對於大量數據庫來說很好,並且可能有點矯枉過正。不過,最好的事情是,如果您需要更多,您可以隨時添加記憶體和磁碟空間併升級您的處理器。如有必要,請移至新框或添加框(如果您的數據庫支持)。(更好的是:將您的環境作為虛擬機/集群執行。然後移動到另一台物理機是小菜一碟。)

資料不夠。。

當您說“數千次”時,是每週還是每秒?

如果每秒,那麼您使用的堆棧(OS,DB)無關緊要。這都是關於日誌的良好 IO。例如固態硬碟。以及設計+程式碼質量。

如果每週,請考慮您的最大尺寸。<10GB?然後查看適用於 Windows 的 SQL Server Express。或用於非 Windows 的 Postgres。

而“非營利”的意思是“便宜”。在這種情況下,您真的必須使用 Linux+Postgres,除非您因為已經是 Windows 商店而需要承擔培訓或支持成本。但是“便宜”達到了“選擇快速、便宜和好中的任何 2 個”的限制(好是這裡的大小限制)。

不過我會遠離 MySQL:與其他流行的系統(SQL Server、Oracle、Postgres,甚至 DB2 和 Sybase)相比,IMO 有太多的怪癖

引用自:https://dba.stackexchange.com/questions/3626