При переиндексации периодически возникают проблемы. Дело в том, что данные для индекса сначала готовятся в таблице с суффиксом idx, после чего копируются в основную таблицу. При этом удаление старых данных и копирование новых происходит в пределах одной транзакции. Все бы ничего, но перед копированием выполняется команда ALTER TABLE ... DISABLE KEYS, это слегка ускоряет операцию вставки, но неявно завершает текущую транзакцию, а это плохо. Во первых, некоторое время в основной таблице индекса отсутствуют данные, что приводит к ошибкам, во вторых, при сбое транзакцию откатить уже нельзя и таблица индекса будет пустой уже продолжительное время.
Решение следующие:
Закомментировать в файле Mage_Index_Model_Mysql4_Abstract в функции insertFromSelect следующие строки:
$to->query("ALTER TABLE {$destTable} DISABLE KEYS");
$to->query("ALTER TABLE {$destTable} ENABLE KEYS");
После правки все работает без глюков. (Все вышеизложенное верно для версии 1.4.0.1)
Кстати, в релизе 1.5.0.0-alpha1 разработчики, похоже, часточно поправили эту ошибку, при реиндексации Product Flat Data, но они просто отключают Flat при переиндексации.