MySQL の MyISAM エンジンが外部キーをサポートできない理由を理解する
MyISAM は全文検索機能で優れているにもかかわらず、サポートの面では不十分です外部キー関係は、その対応物である InnoDB がこの分野で優れています。この相違は開発者を困惑させ、次のような疑問を抱かせています:
MyISAM に外部キー制約がないのは、当初パフォーマンスと古いシステムとの互換性に重点を置いていたためであると考えられています。その設計では、データの整合性機能よりも速度とシンプルさを優先しました。
一方、InnoDB に外部キーのサポートが組み込まれたのは、トランザクションセーフな操作とデータの一貫性を重視した結果です。参照整合性を強制する機能により、孤立したレコードや未解決の参照などの異常からデータが保護されます。
MyISAM と InnoDB の機能が矛盾していることを考慮すると、パフォーマンスを最適化するための Web アプリケーションの性質:
MyISAM に外部キーのサポートを実装する計画の兆候は過去にありましたが、最近の MySQL ドキュメントにそのようなコメントがないことから明らかなように、その意図は放棄されたようです.
一方、InnoDB は大幅な進歩を遂げています。 MySQL 5.6 の時点で、InnoDB はフルテキスト データにインデックスを付けて効率的な検索を実行する機能を獲得し、MyISAM の検索強度と InnoDB のデータ整合性能力の間の以前のギャップに対処しました。
結論として、MyISAM は依然として実行可能な選択肢です。全文検索のパフォーマンスを優先するアプリケーションでは、データの整合性と参照制約が不可欠なシナリオでは InnoDB が優れたオプションとして浮上します。
以上がInnoDB は外部キーをサポートしているのに、MyISAM は外部キーをサポートしていないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。