標準のMySQLまたはMariaDBの代わりに、MongoDBを使用してMongoDBを使用して人気のあるWordPressプラグインを使用することに関する問題と考慮事項が既知の問題と考慮事項があります。 WordPressは本質的にMySQLデータベースを使用するように構築されているため、MongodbâANOSQLデータベースを使用するには、重要な技術的調整が必要であり、多くのプラグインとテーマとの互換性に影響を与える可能性があります。
第一に、WordPressコアとプラグインとテーマの広範なエコシステムは、MySQLなどのリレーショナルデータベースに合わせたSQLクエリに大きく依存しています。 MongoDBは、SQL構文をネイティブにサポートしていないドキュメントベースのNOSQLデータモデルで動作し、SQLクエリを発行する多くのプラグインをMongoDBで使用すると予測不可能に動作します。多くのWordPressプラグインは、MySQL原産の関連データ構造、トランザクション、結合、および酸のコンプライアンス特性を想定していますが、MongoDBには存在しないか異なり、互換性の課題につながります。
1つの主要な技術的課題は、Mongodbが伝統的にマルチドキュメントレベルで完全に酸性に準拠していなかったという事実から生じます(特にバージョン4以前)。 MongoDBがバックエンドとして使用される場合、複数のテーブルまたは複雑な結合に依存しているWordPressプラグインは、データの整合性の問題または一貫性のない動作に遭遇する可能性があります。 MongoDBは単一のドキュメントレベルで原子性を提供しますが、多くのWordPressプラグインはマルチテーブルトランザクションを期待しています。MongoDBは本質的に提供できません。
さらに、ユーザー認証、役割、および機能を管理するプラグイン、またはMySQLテーブルに関連する複雑なメタデータ構造を操作するプラグインは、MongoDBがデータを非常に異なる方法で処理するために壊れる可能性があります。たとえば、SQL結合またはリレーショナルスキーマに相当する直接的なmongoDBがないため、ユーザーメタコラムまたはポストメタテーブル間で複雑なクエリまたは集約データを実行するプラグインは正しく機能しない場合があります。一部のプラグインページまたは設定は、MongoDBで予想されるクエリを実行できないため、データを表示できない場合があります。
MySQLクエリをMongoDBコマンドに翻訳しようとするコンバージョンまたはアダプタープラグインは存在しますが、しばしば制限され不完全です。このようなプラグインは、基本的なシナリオのみを処理する場合があり、生産環境で確実に機能するために、慎重に手動でテストし、拡張カスタマイズが必要です。さらに、これらのプラグインを維持することは、常に進化するWordPressおよびMongoDBバージョンに追いつく必要があるため複雑であり、カスタム投稿タイプ、分類、マルチサイトインストールなどの高度なWordPress機能を常にサポートするわけではありません。
Yoast SEOのような人気のある複雑なWordPressプラグインは、従来のMySQLセットアップを使用していない環境で不安定性または競合を示していますが、ほとんどの報告された問題は、直接的なmongoDBの互換性ではなく、プラグインの競合から生じます。ただし、多くの人気のあるプラグインが単にMongodbを公式にサポートしておらず、そのようなセットアップでの安全な使用を制限することは注目に値します。プラグイン開発者は通常、非関係データベースに設計されていないため、互換性がMongoDBで維持またはテストされないことがよくあります。
パフォーマンスに関しては、MongoDBはスケーラビリティや柔軟なスキーマ設計などの利点を提供できますが、これらの利点は、WordPressのアーキテクチャとエコシステムをNOSQLに適応させることの実際的な困難によって相殺されます。一部の開発者は、MySQLを完全に交換するのではなく、キャッシュ、キー価値ストレージ、フロントエンドアプリの提供など、MongoDBをレバレバリングしながら、WordPressにMySQLを使用し続けるなどの代替アプローチを提案します。
要約すると、人気のあるWordPressプラグインとMongoDBの既知の問題は次のとおりです。
- SQL Relianceによる非互換性:ほとんどのプラグインはMySQLバックエンドを期待し、MongoDBが実行できないSQLクエリを発行します。
- リレーショナルデータ処理の欠如:MongoDBのドキュメントベースのモデルは、プラグインの関係データ、参加、およびトランザクションの期待と競合します。
- 部分酸のサポート:MongoDBでの限られたトランザクションサポートは、完全な酸コンプライアンスを期待するプラグインにデータの一貫性の問題を引き起こす可能性があります。
- 壊れたプラグイン機能:ユーザーの役割、メタデータ、および複雑なクエリの処理プラグインが失敗するか、欠落データを表示することがよくあります。
- 複雑な移行と適応が必要です:MySQLとMongoDBを橋渡ししようとするプラグインは、しばしば部分的にしか機能しないため、広範なテストが必要です。
- 公式のサポートの欠如:主要なプラグインは、公式のMongoDBサポートを提供することはめったになく、サポートされていないまたはバギーの動作をもたらします。
- 標準以外の環境でのプラグインの競合と不安定性:Yoast SEOのようないくつかのプラグインは、型破りなセットアップで使用した場合に安定性の問題を経験しています。