sql >> データベース >  >> RDS >> Mysql

MySQLに外部キーを導入するとパフォーマンスが低下しますか

    仮定:

    1. すでにFKをサポートするストレージエンジン(例:InnoDB)を使用しています
    2. 関連する列にすでにインデックスがあります

    次に、MySQLに整合性を適用させることで、パフォーマンスが向上すると思います。結局のところ、参照整合性を強制することは、データベースエンジンが実行するように最適化されていることです。 Rubyで整合性を管理するための独自のコードを作成することは、比較すると遅くなります。

    FK機能を取得するためにMyISAMからInnoDBに移行する必要がある場合は、2つのエンジン間のパフォーマンスのトレードオフを考慮する必要があります。

    まだ指標がない場合は、それが必要かどうかを判断する必要があります。一般的に言って、書き込みよりも読み取りを多く行う場合は、インデックスが必要です(必要です)。

    現在インデックスに登録されているものの上にFKをスタックすると、アプリケーションコードにこれらの種類のチェックを実装するよりも、全体的なパフォーマンスへの影響が少なくなります。



    1. リクエストURLでテーブル名とフィールド名を公開する

    2. 異なるサーバー上の2つのデータベースでのMySQLトランザクション

    3. このループで5秒ごとに更新されたオブジェクトカウントが表示されないのはなぜですか?

    4. 範囲を含む場合、インデックスの最初のカーディナリティ列が高くなりますか?