先週私はサーバでSQLクエリを実行し、クエリを終了するまでに1日かかりました。 しかし、私はlocalhostで試したときに、それは高速実行されます。サーバでSQLクエリを実行するには時間がかかりました
私はこの問題を1週間にわたって見つけようとしてきましたが、解決策を見つけることができません。
先週私はサーバでSQLクエリを実行し、クエリを終了するまでに1日かかりました。 しかし、私はlocalhostで試したときに、それは高速実行されます。サーバでSQLクエリを実行するには時間がかかりました
私はこの問題を1週間にわたって見つけようとしてきましたが、解決策を見つけることができません。
唯一のアドバイスは、WHERE
節で使用できるインデックスを追加して、処理を高速化することです。特定の日のレコードを実際に探しているので、created_date
のインデックスは実質的に役立ちます。
ALTER TABLE subscription_hist ADD INDEX c_date_idx (created_date)
MySQLは、関数インデックスをサポートしていませんので、あなたのWHERE
句でDATE(created_date)
を使用すると、おそらくインデックスを利用することができません。しかし、created_date
が既にdatetime列である場合、私はDATE()
でそれをラッピングする際には何のポイントも見ません。その列を直接使用してください。
SELECT
created_date AS `date`,
'registrasi_h2h' AS transaction,
no_ecash AS nomor_ecash,
IFNULL(partner_id, '') AS partner_id
FROM subscription_hist
WHERE created_date >= CURDATE() - INTERVAL 1 DAY AND
created_date < CURDATE()
ORDER BY created_date ASC;
日付ロジックが正しく動作することを示すデモについては、以下のリンクに従ってください。
はcreated_dateがdatetimeで日付のみを取得したいのでdate()を使用します。 – rinaldy31
どのように大規模な 'subscription_hint'テーブルで、あなたもあったどのように多くの他のクエリが同時に実行されているのでしょうか? –
@TimBiegeleisen私はそれが許可されていないので、私はそれをチェックできないと思います。私はちょうど質問をする。その時に実行されたクエリはこれだけです。 – rinaldy31
は「オーダー・バイ」である可能性がありますか?私は昨日同様の問題を抱えていて、 'order by'によって – thekucays