私は非常に遅いMySQLの構文を持っています。これは、テーブルが5000を超えるエントリに成長しているため、基本的に使用できません。サーバーがエラーコードを送信して終了するように30秒以上かかります。どのように非常に遅いMySQLのクエリを高速化するには?
構文は次のとおりです。
SELECT
id,
user_id,
date
FROM
table
WHERE
id IN (
SELECT
MAX(id)
FROM
table
GROUP BY date
)
AND
company_id = '1'
AND
date > '1473700785'
AND
complete = '1'
AND
name = "random string"
ORDER BY id ASC
構造:
id - int(11)
user_id - int(10)
company_id - int(11)
date - varchar(20)
complete - varchar(2)
name - varchar(75)
あなたがそれを遅くすることができるもの任意のアイデアを持っていますか?それは、はるかに小さいテーブルサイズ(1000エントリ未満)で期待どおりに機能していました。
の必要性を見ない、提案どのような質問に戻り、 'in'の代わりにjoinを使い、インデックスをチェックしてください。 – LONG
インデックスを使用してuser_idに適用することができます –
テーブルにインデックスがありますか? –