ホームページ >バックエンド開発 >PHPチュートリアル >サブテーブルに関する質問
サブテーブルの問題について
現在、データベースに 500 万を超えるデータを持つ 3 つのフォームがあり、そのうちの 1 つのテーブルが 1000 万を超えていますが、クエリ速度がどんどん遅くなっていきます。 🎜>
次の質問を専門家に尋ねます
1. 100 万を超えるテーブルをテーブルに分割します。
2.データテーブルは100に分割されます。 10,000のテーブルが10個あるため、テーブルAのIDはテーブルBに5つのデータを持ち、データテーブルBに分割された10個のテーブルに格納されます。 (問題が発生します。データを読み取るとき、 B を読み取ることはできません。テーブル内のすべてのテーブルについて、これら 5 つのデータは分割の 5 番目と 6 番目のテーブルに配置される可能性があります。この場合、テーブル B の 5 番目と 6 番目のテーブルを読み取るだけで済みます。前提として、データが存在するかどうかはわかりません)。
-----ソリューションのアイデア----------------------サブテーブルは次のとおりです。条件付きはい、単純にレコードの順序で切り取られるわけではありません
たとえば、A と B が ID で関連付けられている場合、B は A.id に従って分割する必要があります
このように、A. ID はわかっているので、ルールに従って分割します。ルールを分割することで、関連するレコードがどの Bn に表示されるかを推測できます
テーブル間に多対多の関係がある場合、テーブルを分割することは無意味です
現時点では、遷移テーブルを使用して保存する必要があります。関連付け関係の場合、クエリはすべてのテーブルを一度に実行するのではなく、2 つのステップで実行する必要があります。
遷移テーブルには通常 2 つの列しかないため、レコード数が多いと、一度にメモリにロードされる可能性が非常に高くなります(複数回のロードがかかる場合でも、一度にロードできるレコード数も多くなります)