900 万件のレコードを含むHISTORY
テーブルがあります。作成された年ごと、月ごとのレコードを見つける必要があります。クエリ番号 1 を使用していましたが、数回タイムアウトしました。
SELECT
year(created) as year,
MONTHNAME(created) as month,
count(*) as ymcount
FROM
HISTORY
GROUP BY
year(created), MONTHNAME(created);
を追加することにしましwhere year(created)
た。今回は、クエリの実行に 30 分かかりました (はい、非常に時間がかかります)。
SELECT
year(created) as year,
MONTHNAME(created) as month,
count(*) as ymcount
FROM
HISTORY
WHERE
year(created) = 2010
GROUP BY
year(created), MONTHNAME(created) ;
タイムスタンプ列にインデックスを追加することを計画してcreated
いましたが、その前に意見が必要です (このような巨大なテーブルのインデックス作成には時間がかかるため)。
created(timestamp)
年関数が列で使用されていることを考えると、列にインデックスを追加するとパフォーマンスが向上しますか?