Mysql

Google Cloud SQL 上的 MySQL 壓縮

  • September 7, 2016

由於 Google Cloud SQL 是底層 MySQL 的託管實例,在 100GB RAM 的第二代機器上限制為絕對最大值,我是否應該壓縮一些表和索引數據?我正在設計一個全域系統,因此最終工作集可能會超過 100GB。

以前,我通過壓縮受記憶體限制的 SQL Server 和 Oracle 系統中的表和索引來提高性能。

我是 GCP 的新手,因此也是 MySQL 的新手。在這種情況下,壓縮的使用是否仍然適用?是否有任何此類函式或過程(如 SQL Server 中的compression_estimate)我可以執行以評估表或索引是否會從壓縮中受益?

你真的需要壓縮嗎?一個多 TB 的數據集可以愉快地存在於 100G-RAM 的機器上。你的數據是什麼樣的?文本?斑點?很多行?關心分享CREATE TABLEs

我沒有關於 Cloud SQL 的任何詳細資訊。但…

在考慮縮放時,壓縮通常不是首先考慮的地方。它有成本(通常是 CPU,有時是複雜性)。

  • InnoDB 的壓縮給你大約 2 倍。
  • 外部壓縮(zip 等)為文本提供大約 3 倍。這對於“縮放”並不是很重要。
  • TokuDB 和 InfiniDB 聲稱獲得了 10 倍,我聽說過支持證據。

“縮放”通常涉及分片或其他一些“分佈式”技術。

RAM 通常不是縮放的限制因素;它是磁碟空間。或者它可以是幾個指標中的任何一個——IOPS、網路頻寬等。

縮放…

  • 通過複製“輕鬆”處理讀取縮放。
  • 寫入縮放不是由任何正常技術處理的。
  • Galera Cluster 提供了一些寫入擴展。
  • 分片提供了很多寫入擴展,但在應用程序中具有明顯的複雜性。
  • MySQL 的 NDB Cluster 提供了一些寫入擴展,但它通常僅限於小眾應用程序,而不是一般用途。(而且設置非常複雜。)
  • 我對任何現成的數據庫“擴展”持懷疑態度——謹防行銷炒作。(Web 伺服器易於擴展;數據庫則不然。)

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