私は新しい行を挿入するだけの大きなテーブルをいくつか用意します。また、認証用に小さなテーブルを1つ使用します。私の質問は、この大きなテーブルがこの小さなテーブルにパフォーマンス上の影響を与えるかどうかです。または、テーブルのパフォーマンスはお互いに独立していますか?MySQLテーブルは互いにパフォーマンス効果がありますか?
ありがとうございました。
私は新しい行を挿入するだけの大きなテーブルをいくつか用意します。また、認証用に小さなテーブルを1つ使用します。私の質問は、この大きなテーブルがこの小さなテーブルにパフォーマンス上の影響を与えるかどうかです。または、テーブルのパフォーマンスはお互いに独立していますか?MySQLテーブルは互いにパフォーマンス効果がありますか?
ありがとうございました。
これらのテーブル間で結合を作成する場合や、クエリでそれらを使用する場合は、パフォーマンスが低下します。さもなければ、私が正しい場合、個々のテーブルはMySQLの他のテーブルのステートメントを実行するパフォーマンスに影響しません。
大規模な表の列に結合または参照する可能性がある場合は、外部キー制約を使用して表を索引付けする必要があります。
私はテーブル間のパフォーマンスの面で本当の独立性はないと思います。パフォーマンスという用語は、データベースプロセスとサーバーの作業に関連しています。
例を挙げれば、2つのプロセスが同時に動作する場合です。 1つは大きなテーブルに重い作業があり、もう1つは小さなテーブルにはほとんど作業がありません。重いものはほとんどあなたのサーバーリソース(CPU、ディスク、等v.v ...)を犠牲にして、わずかなタイムアウトを引き起こすかもしれません。彼らは順番に別々のテーブルの上にあなたのプロセスの仕事は、彼らがお互いに影響を与えていない場合は、それ自体で
テーブルは、性能を持っていない、一緒に
そして確かに働くのであれば、彼らはまだお互いに影響を与えます。テーブルが大きいか小さいかにかかわらず、それ自体は何もしません。
がにこれらのテーブルに対して互いに影響しているかどうかを実際に照会していますか?
はい、あります。特定のサーバーにはクエリを実行するための容量が限られています。 CPUコアの数は固定されており、メモリ内のキャッシュされたページを格納するための物理RAMの容量はあり、ディスクI/Oはビジーなシステムで飽和する可能性があります。
クエリを実行するサーバーの制限は、テーブルの大きさとはほとんど関係ありません。大きなテーブルに対してクイッククエリを実行し、小さなテーブルに対して非常にコストのかかるクエリを実行できます。
これは、同時に実行するクエリの数、およびクエリがどの程度複雑でリソースを消費するかによって異なります。しかし、確かにクエリはお互いに影響を与えることができます。なぜなら、システムリソース(主にCPU、RAM、ディスク帯域幅)を使用するために互いに競合しているからです。
これは、インデックスを追加したり、クエリ結果をキャッシュしたり、クエリロジックのSQLコードをより効率的に変更してクエリを最適化することが重要な理由です。