日付をはるか未来に設定するこのクエリがあります。テーブルには 400 万件のレコードがあります。そして、クエリは本当に簡単です。しかし、クエリの実行には約 3 分かかりました。
UPDATE TABLE
SET to_date = STR_TO_DATE('31-01-3000','%d-%m-%Y')
WHERE to_date IS NULL;
この列には INDEX はありません。
このクエリまたは MySQL 自体を調整するにはどうすればよいですか? どうもありがとう。
日付をはるか未来に設定するこのクエリがあります。テーブルには 400 万件のレコードがあります。そして、クエリは本当に簡単です。しかし、クエリの実行には約 3 分かかりました。
UPDATE TABLE
SET to_date = STR_TO_DATE('31-01-3000','%d-%m-%Y')
WHERE to_date IS NULL;
この列には INDEX はありません。
このクエリまたは MySQL 自体を調整するにはどうすればよいですか? どうもありがとう。
インデックスを使用しない最速のソリューション (実際、最速のソリューション PERIOD) は、列のデフォルトを '31-01-3000' にすることです。これは、列を更新する必要がないことを意味します。ただし、このような大きなテーブルで実行していることを考えると、最初の ALTER にはかなりの時間がかかる場合があることに注意してください。
ALTER TABLE `table_name`
CHANGE COLUMN `to_date` `to_date` DATE NOT NULL DEFAULT '3000-01-31';