MariaDB 11 DBMS の新しい重要なブランチが導入されました

10.x ブランチの創設から 10 年後、MariaDB 11.0.0 がリリースされました。これにより、互換性を破壊するいくつかの重要な改善と変更が提供されました。 このブランチは現在アルファ リリース品質にあり、安定化後に実稼働環境で使用できるようになる予定です。 MariaDB 12 の次のメジャー ブランチには、互換性を損なう変更が含まれており、早ければ 10 年後 (2032 年) にリリースされる予定です。

MariaDB プロジェクトは MySQL からのフォークを開発しており、可能な限り下位互換性を維持し、追加のストレージ エンジンと高度な機能の統合を特徴としています。 MariaDB の開発は、個々のベンダーから独立したオープンで透明な開発プロセスに従って、独立した MariaDB Foundation によって監督されています。 MariaDB DBMS は、多くの Linux ディストリビューション (RHEL、SUSE、Fedora、openSUSE、Slackware、OpenMandriva、ROSA、Arch Linux、Debian) で MySQL の代わりに提供され、Wikipedia、Google Cloud SQL、Nimbuzz などの大規模プロジェクトに実装されています。

MariaDB 11 ブランチの主な改善点は、クエリ オプティマイザーが新しい重みモデル (コスト モデル) に移行したことで、各クエリ プランの重みをより正確に予測できるようになりました。 新しいモデルは一部のパフォーマンスのボトルネックを軽減する可能性がありますが、すべてのシナリオで最適であるとは限らず、一部のクエリが遅くなる可能性があるため、ユーザーはテストに参加し、問題が発生した場合は開発者に通知することをお勧めします。

以前のモデルは、最適なインデックスを見つけることには優れていましたが、テーブル スキャン、インデックス スキャン、または範囲フェッチ操作の適用性に問題がありました。 新しいモデルでは、ストレージ エンジンによる操作の基本重みを変更することで、この欠点が解消されました。 シーケンシャル書き込みスキャンなどのディスク速度に依存する操作のパフォーマンスを評価する場合、毎秒 400MB の読み取り速度を提供する SSD にデータが保存されていると仮定します。 さらに、オプティマイザの他の重みパラメータも調整され、たとえば、サブクエリでの「ORDER BY/GROUP BY」操作にインデックスを使用する機能を実装し、非常に小さなテーブルの作業を高速化できるようになりました。

新しい重みモデルを使用すると、次の状況でより最適なクエリ実行プランを選択できることに注意してください。

  • 2 つ以上のテーブルにまたがるクエリを使用する場合。
  • 多数の同一の値を含むインデックスがある場合。
  • テーブルの 10% を超える範囲を使用する場合。
  • 使用されているすべての列にインデックスが作成されているわけではない複雑なクエリがある場合。
  • 異なるストレージ エンジンを伴うクエリが使用される場合 (たとえば、XNUMX つのクエリが 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 に変更されました。

出所: オープンネット.ru

コメントを追加します