ホームページ > バックエンド開発 > PHPチュートリアル > サブテーブルに関する質問

サブテーブルに関する質問

WBOY
リリース: 2016-06-13 12:16:45
オリジナル
923 人が閲覧しました

サブテーブルの問題について
現在、データベースに 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 つの列しかないため、レコード数が多いと、一度にメモリにロードされる可能性が非常に高くなります(複数回のロードがかかる場合でも、一度にロードできるレコード数も多くなります)

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート