MariaDB 11 DBMS 的一個新的重要分支已經推出

10.x 分支成立 10 年後,MariaDB 11.0.0 發布,它提供了一些破壞相容性的重大改進和變更。 該分支目前處於 alpha 版本質量,穩定後即可投入生產使用。 MariaDB 12 的下一個主要分支包含破壞相容性的更改,預計不會早於 10 年後(2032 年)。

MariaDB 專案正在開發 MySQL 的一個分支,盡可能保持向後相容性,並整合額外的儲存引擎和進階功能。 MariaDB 的開發由獨立的 MariaDB 基金會監督,遵循獨立於各個供應商的開放、透明的開發流程。 許多Linux 發行版(RHEL、SUSE、Fedora、openSUSE、Slackware、OpenMandriva、ROSA、Arch Linux、Debian)中都提供了MariaDB DBMS,而不是MySQL,並且已在Wikipedia、Google Cloud SQL 和Nimbuzz 等大型專案中實施。

MariaDB 11分支的一個關鍵改進是查詢最佳化器過渡到新的權重模型(成本模型),它可以更準確地預測每個查詢計劃的權重。 雖然新模型可能會緩解一些效能瓶頸,但它可能並非在所有場景下都是最佳的,並且可能會減慢某些查詢的速度,因此鼓勵用戶參與測試並在出現問題時通知開發人員。

先前的模型擅長尋找最優索引,但在表掃描、索引掃描或範圍獲取操作的適用性方面存在問題。 在新模型中,透過更改儲存引擎操作的基本權重消除了這個缺點。 在評估與磁碟速度相關的操作(例如順序寫入掃描)的效能時,我們現在假設資料儲存在提供每秒 400MB 讀取速度的 SSD 上。 此外,還調整了優化器的其他權重參數,例如,可以實現在子查詢中使用索引進行「ORDER BY/GROUP BY」操作的功能,並加快非常小的表的工作速度。

需要注意的是,新的權重模型將允許您在以下情況下選擇更優化的查詢執行計劃:

  • 當使用跨越 2 個以上表格的查詢時。
  • 當您的索引包含大量相同值時。
  • 當使用的範圍覆蓋表的 10% 以上。
  • 當您有複雜的查詢時,並非所有使用的欄位都被索引。
  • 當使用涉及不同儲存引擎的查詢時(例如,當一個查詢存取 InnoDB 和記憶體引擎中的表時)。
  • 當使用FORCE INDEX來改善查詢計畫時。
  • 當使用“ANALYZE TABLE”時查詢計劃惡化。
  • 當查詢跨越大量派生表(大量巢狀 SELECT)。
  • 使用索引下的 ORDER BY 或 GROUP BY 表達式時。

MariaDB 11分支中的主要相容性問題:

  • SUPER 權限不再允許您執行可單獨設定權限的操作。 例如,要變更二進位日誌的格式,您將需要 BINLOG ADMIN 權限。
  • 刪除了 InnoDB 中的更改緩衝區實作。
  • Innodb_flush_method 和 innodb_file_per_table 已被棄用。
  • Mysql* 名稱支援已被棄用。
  • 將explicit_defaults_for_timestamp 設為0 已被棄用。
  • 符號連結包含在單獨的包中以與 MySQL 相容。
  • innodb_undo_tablespaces 參數的預設值已變更為 3。

來源: opennet.ru

添加評論