1

日付をはるか未来に設定するこのクエリがあります。テーブルには 400 万件のレコードがあります。そして、クエリは本当に簡単です。しかし、クエリの実行には約 3 分かかりました。

UPDATE TABLE 
SET to_date = STR_TO_DATE('31-01-3000','%d-%m-%Y') 
WHERE to_date IS NULL;

この列には INDEX はありません。

このクエリまたは MySQL 自体を調整するにはどうすればよいですか? どうもありがとう。

4

2 に答える 2

1

インデックスを使用しない最速のソリューション (実際、最速のソリューション PERIOD) は、列のデフォルトを '31-01-3000' にすることです。これは、列を更新する必要がないことを意味します。ただし、このような大きなテーブルで実行していることを考えると、最初の ALTER にはかなりの時間がかかる場合があることに注意してください。

ALTER TABLE `table_name`
CHANGE COLUMN `to_date` `to_date` DATE NOT NULL DEFAULT '3000-01-31';
于 2013-05-15T00:00:14.533 に答える