web-dev-qa-db-ja.com

MariaDBは、標準のLAMPスタックでのMySQLに代わる適切なドロップですか?

私は最近、「従来の」MySQLに比べてMariaDBで利用可能な改善点(ある場合)は何ですか?

プラットフォームの相互運用性や下位互換性、あるいはその両方が問題になる可能性がある場合は、実績のある信頼できるMySQLを使用するのが最善であることを理解しています。しかし、スタンドアロンWebサイト/アプリケーションのスタンドアロンDBの場合、Mariaを使用することで得られるメリットはありますか?

MariaはWordPress、Drupal、Joomlaなどの一般的なWebプラットフォームで動作しますか?

これのいくつかはストレージエンジンの選択/好みに帰着すると予想していますが、正直なところ、MyISAM、InnoDB、またはその他のいずれかを使用する必要があるかどうか、またはいつ使用するかはまだわかりません!どちらが良いですか、速いですか、それとも何ですか?

私が得る唯一のことは、「真の」テーブル関係(つまり、外部キーなど)が必要な場合は、InnoDBを使用することです。

人々が私に提供できる助けや明快さをありがとう。

7
Chris

別のMySQLフレーバーに移行する正当な理由の1つはパフォーマンスです。最新のMariaDBバージョン5.3と5.5(それぞれMySQL 5.1と5.5の置き換え版に含まれています)には、クエリ最適化の主要な改善が含まれていました。あなたは彼らのサイトでもっと読むことができます: MariaDB 5.3とは

改善/機能の例としては、「インデックス条件のプッシュダウン」、「範囲に基づくコストベースの選択とindex_mergeの比較」、「サブクエリの具体化」、「サブクエリのキャッシュ」、「ハッシュ結合」などの新しい結合メソッドがあります。いくつかの機能は、サブクエリ(派生ステートメント)、派生テーブル、およびビューのパフォーマンスに影響します。

詳細は オプティマイザ機能比較マトリックス ページにあります。

時間データ型のマイクロ秒サポート、レプリケーションとバイナリロギングの改善など、その他の追加機能。


以前のバージョン(5.1と5.2)には [PERSISTENT] VIRTUAL


もちろん、MySQLからMariaDBへのサーバーの移行は、これらの機能がデータベース/アプリケーションで有用であるかどうか、およびパフォーマンスの違い(ある場合)が発生する可能性のある問題に十分な大きさであるかどうかを調べてテストする必要があります(他の移行と同様に)。

7
ypercubeᵀᴹ

一般にMariaDBはドロップイン置換です MySQLの場合。それは彼らのホームページでそう言っています。 :-)アプリケーションは違いに気づきません。

特殊なアプリケーションとEdgeケースの場合、違いがある可能性があります。しかし、これらは新しいバージョンのMySQLの特別な機能を使用するように調整されます。

MySQL(GA)リリースを追跡するだけでなく、組み込みのパフォーマンス最適化も含まれているため、 Percona Server を確認することもできます。

InnoDBの必要性は、アプリケーションの動作によって明らかになります。

4
randomx

MariaDBの開発者たちは、これはドロップインの代替品であり、バージョン5.5までは正しいと主張しています。

  • MariaDB 5.1-5.2-5.3はMySQL 5.1を置き換えることができます。
  • MariaDB 5.5はMySQL 5.5を置き換えることができます

小さな「非互換性」の問題は通常は当てはまりませんが、ここに記載されています: https://kb.askmonty.org/en/mariadb-vs-mysql-compatibility/

多くのバグ修正と新機能もあり、最も重要なものはここにリストされています: https://kb.askmonty.org/en/mariadb-vs-mysql-features/

デフォルトのストレージエンジンであるXtraDBは、PerconaによるOracle InnoDBの分岐であり、いくつかのバグ修正といくつかの追加機能が含まれています。また、MyISAMをAriaに、FederatedをFederatedXに置き換えることもできます。ただし、Federatedと同様に互換性の問題が発生し、MyISAMがすでに存在する場合は、Oracle InnoDBをインストールできます。

MariaDB 10.0はMySQL 5.5を置き換えることもでき、MySQL 5.6の一部の機能を備えています(その一部は、コード品質が低すぎるためMontyのチームによって再実装されました)。ただし、現時点では、5.6の一部の機能はMariaDBにはありません。たとえば、ストアドプロシージャにGET DIAGNOSTICSがなく、EXPLAIN出力用のJSON形式もありません。

MySQLで動作するすべてのAPIとクライアントは、MariaDBで動作するはずです。何かがうまくいかない場合、それはバグであり、解決されます。 Windowsを使用している場合、仮想列などのMariaDB固有の機能をいくつかサポートしているため、おそらくHeidiSQL GUIを使用する必要があります。

3