I have the following query:
UPDATE
    `temp_table`,
    `sms`
SET
    `sms`.`to` = `temp_table`.`new_value`
WHERE
    `sms`.`to` = `temp_table`.`old_value`;
temp_table has ~200,000 rows.
sms has ~2,000,000 rows.
sms.to, temp_table.new_value, and temp_table.old_value are VARCHAR(255) with indexes.
Values are UK phone numbers.
The update query is slow it never completes. Does anyone know why?
Explain:
Text Results for Creating Tables:
From phpMyAdmin
CREATE TABLE `temp_table` (
    `old_value` varchar(255) DEFAULT NULL,
    `new_value` varchar(255) DEFAULT NULL
) ENGINE = InnoDB DEFAULT CHARSET = latin1 COLLATE = latin1_swedish_ci;
ALTER TABLE `temp_table`
    ADD KEY `old_value` (`old_value`),
    ADD KEY `new_value` (`new_value`);
CREATE TABLE `sms` (
    `id` int(11) NOT NULL,
    `branch_id` int(11) DEFAULT NULL,
    `customer_id` int(11) DEFAULT NULL,
    `message_id` int(11) DEFAULT NULL,
    `message` text DEFAULT NULL,
    `from` varchar(255) DEFAULT NULL,
    `to` varchar(255) DEFAULT NULL,
    `status` varchar(255) DEFAULT NULL,
    `created_at` int(11) DEFAULT NULL,
    `updated_at` int(11) DEFAULT NULL
) ENGINE = InnoDB DEFAULT CHARSET = utf8 COLLATE = utf8_general_ci;
ALTER TABLE `sms`
    ADD PRIMARY KEY (`id`),
    ADD KEY `idx-sms-branch_id` (`branch_id`),
    ADD KEY `idx-sms-customer_id` (`customer_id`),
    ADD KEY `idx-sms-message_id` (`message_id`),
    ADD KEY `idx-sms-to` (`to`),
    ADD KEY `idx-sms-created_at` (`created_at`),
    ADD KEY `idx-sms-updated_at` (`updated_at`);
ALTER TABLE `sms`
    MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;

 
     
     
     
    