MySQLクエリを最適化する必要があります。私は100.000未満のレコードで「賭ける」テーブルを持っています。今月のすべてのレコードを表示する必要があります。クエリ間のMySQL最適化日付
SELECT betting.id
FROM betting, members
WHERE members.status = 1
and members.id = betting.user
and betting.date between '2016-09-01' and '2016-09-30'
and betting.status = 1
and betting.type = 1;
私が説明し、コマンドを試してみてください。
SIMPLE betting range user,date,type,type_2 type_2 7 NULL 4966 Using where
SIMPLE members eq_ref PRIMARY PRIMARY 4 betting.user 1 Using where
は、データベース検索を削減するチャンスがありますか?問題は、この結果を表示するページがあまりにも頻繁に呼び出され、CPUコストがかかることです。残念ながら私は結果をキャッシュすることはできません。ライブにする必要があるからです。何か案は ?ここで
関連する列にインデックスがありますか – RiggsFolly
mysqlでキャッシュの依存関係を使用できます。つまり、テーブルが変更されるまでキャッシュに結果を保持します。 –
@RiggsFollyはい、私は(タイプ、結果、ステータス)のインデックスを持っています –