1

mysql の巨大なテーブルに対して毎日作成される行数を計算する必要があります。私は現在使用しています

select count(1) from table_name group by Date

クエリは 2000 秒以上かかっており、カウントしています。最適化されたクエリまたはクエリを最適化する方法があるかどうか疑問に思っていました。

4

3 に答える 3

1
  • 「日付」フィールドが日時やタイムスタンプではなく「日付」タイプであることを確認してください
  • その列にインデックスを付ける
  • 1 日だけ必要な場合は、"where" ステートメントを追加します。つまり、WHERE date="2013-07-10"
于 2013-07-10T21:04:56.840 に答える
1

これらの日付に作成されたアイテムのみに関心がある場合は、1 日の終わりにカウントを計算し、それを別のテーブルに保存できます。

これにより、はるかに小さなデータセットで COUNT クエリを実行できます (Use WHERE DATE(NOW()) = Dateそして をドロップしますGROUP BY) 。

次に、データが必要なときに新しいテーブルをクエリします。

于 2013-07-10T21:05:41.133 に答える
0

列にインデックスを追加しDateます。このクエリを最適化する方法は他に考えられません。

CREATE INDEX ix_date
ON table_name (Date);
于 2013-07-10T21:00:23.513 に答える