グループ化速度を向上させる方法
P粉155832941
P粉155832941 2023-09-05 10:24:40
0
1
543
<p>30 億行を超える大きなテーブルがあり、クエリの実行に 3 日かかります。 </p> <p>これは私のクエリです: </p> <pre class="brush:php;toolbar:false;">フリークエンシーワードに挿入 (単語、頻度、ファイル名) 単語を選択、頻度として count(*)、max(ファイル名) すべてのWordstempから 単語ごとにグループ化</pre> <p>基本的に、私のクエリは allwordstemp テーブルから単語ごとにグループ化することであり、頻度 = 1 のときの <strong>ファイル名</strong> を知りたいので、max(filename) を追加しました。 max などの集計関数に含めることができます。頻度 > 1 の場合、ファイル名の値も必要ありません。 どちらのテーブルにも、単語とファイル名に関する 2 つのインデックスがあります。 </p> <p>allwordstemp テーブル (ファイル名は ID ファイル): </p> <pre class="brush:php;toolbar:false;">CREATE TABLE `allwordstemp` ( `word` varchar(45) デフォルト NULL、 `ファイル名` int(11) デフォルト NULL、 KEY `idx_allwordstemp_word` (`word`)、 KEY `idx_allwordstemp_filename` (`filename`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;</pre> <p>頻度単語テーブル:</p> <pre class="brush:php;toolbar:false;">CREATE TABLE `frequencywords` ( `word` varchar(45) デフォルト NULL、 `頻度` int(11) デフォルト NULL、 `ファイル名` int(11) デフォルト NULL、 KEY `idx_frequencywords_word` (`word`)、 KEY `idx_frequencywords_frequency` (`frequency`)、 KEY `idx_frequencywords_filename` (`filename`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;</pre> <p>選択内容の説明:</p> <pre class="brush:php;toolbar:false;"> ---- ------------- -------------- -- ---------- ------ --------------- --------------- ----- --------- ------ ------------ ---------- -------- ----- | id | select_type | テーブル | パーティション | タイプ | possible_keys | キー | key_len | ref | 行 | フィルター | 追加 | ---- ------------- -------------- ------------ ------- ---------- ----------------------- ---------- -- -------------------------------------- | 1 | シンプル | allwordstemp | NULL | インデックス | NULL | idx_allwordstemp_word | 138 | NULL | 3487864881 | 100.00 | インデックスの使用 | ---- ------------- -------------- ------------ ------- ---------- ----------------------- ---------- -- - --- ---------------- ---------- ------------- </pre> <p>クエリを高速化するにはどうすればよいですか? </p>
P粉155832941
P粉155832941

全員に返信(1)
P粉741678385

フィルタは単語やファイル名ではなく、頻度に基づいているようです。そこで、まずすべての単語を頻度別にインデックス付けします。

次に、頻度が整数であると仮定して、次のような WHERE 句を追加します。 リーリー

上記により、さまざまなファイル名に 1 回だけ出現するすべての単語のリストが表示されます。

これがお役に立てば幸いです。ご多幸をお祈り申し上げます。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート