私は開発者であり、大量のレコードを持つテーブルを管理しているときに問題に直面しています。
5〜6列で約4,00,000〜5,00,000行のプライマリテーブル(テーブルA)にデータを入力するためにcronジョブを実行しています。その後、別のテーブルを作成すると、このテーブルのデータは時間の経過とともに増加し続けます。 。
表Aには生データが含まれており、出力表は表Bです。
私のcronスクリプトは、表Bのデータを切り捨ててから、selectクエリを使用してデータを挿入します
TRUNCATE TABLE_B;
INSERT INTO TABLE_B (field1, field2)
SELECT DISTINCT(t1.field2), t2.field2
FROM TABLE_A AS t1
INNER JOIN TABLE_A t2 ON t2.field1=t1.field1
WHERE t1.field2 <> t2.field2
GROUP BY t1.field2, t2.field2
ORDER BY COUNT(t1.field2) DESC;
上記の選択クエリは、約1,50,000〜2,00,000行を生成します
現在、テーブルBにデータを入力するのに時間がかかりすぎています。その間、アプリケーションがテーブルBにアクセスしようとすると、クエリの選択が失敗します。
次のクエリ結果の説明:
'1','PRIMARY','T1','ALL','field1_index',NULL,NULL,NULL,'431743','Using temporary;Using filesort'
'1','PRIMARY','T2','ref','field1_index','field1_index','767','DBNAME.T1.field1','1','Using where'
誰かがこのプロセスを改善するのを手伝ってくれますか、または上記のプロセスの代替案を教えてもらえますか?
ありがとう
スケツ