Имеется таблица:CREATE TABLE test.sites_list (
id int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
url varchar(255) NOT NULL COMMENT 'Домен',
reg varchar(100) DEFAULT NULL COMMENT 'Регистратор',
domain_created date DEFAULT NULL COMMENT 'Дата регистрации домена',
last_http_code int(11) NOT NULL COMMENT 'Последний статус ответа сервера',
created_at timestamp DEFAULT CURRENT_TIMESTAMP COMMENT 'Время создания',
updated_at timestamp DEFAULT '0000-00-00 00:00:00',
status int(11) NOT NULL COMMENT 'Статус',
marker varchar(255) NOT NULL DEFAULT '',
proc varchar(255) DEFAULT NULL,
PRIMARY KEY (id),
INDEX domainCreated_updatedAt (domain_created, updated_at),
INDEX Status_Proc_dCreated (status, proc, domain_created, updated_at),
INDEX UpdatedAt_Status (updated_at, status)
)
ENGINE = INNODB
AUTO_INCREMENT = 19795014
AVG_ROW_LENGTH = 447
CHARACTER SET utf8
COLLATE utf8_general_ci;
Имеется запрос:UPDATE `sites_list` SET `proc` = '2cc16b53f60654d97bcfb265eb0082a4' WHERE `status` = 0 AND `proc` = '' ORDER BY `domain_created` DESC, `updated_at` LIMIT 50;
Ситуация:
В таблице, больше 3 млн. записей.
Этот запрос выполняется несколько минут.
Запрос SHOW PROFILE показывает, что все время уходит на init.
Как можно оптимизировать UPDATE или найти компромисс?