2015-11-25 1 views
1

Here это предложение:Почему MySql не может использовать разделение PARTITION с инструкциями INSERT?

MySQL может применяться раздел обрезку, чтобы выбрать, DELETE и UPDATE заявления. Операторы INSERT в настоящее время не могут быть обрезаны.

Так что, когда вставляется новая строка MySql может не определить, какой раздел она принадлежит? Звук очень странный. Это ошибка? или что они подразумевают под этой фразой?

+0

Инструкции для вырезки вставки могут не требоваться строго. Хотя все разделы могут быть заблокированы, их не нужно читать. Единственное исключение, о котором я могу с легкостью подумать, - это проверка записей с помощью уникальных ограничений, но это должно быть довольно быстро во всех разделах, а не только в одном. –

+0

@GordonLinoff в основном правильный ... Исключение не существует - 'UNIQUE' и' FOREIGN KEY' не обрабатываются, потому что код не хочет (и не пытается) проверять все разделы. –

ответ

2

Как я прочитал, в настоящее время оптимизация подрезки разделов основывается на разборе предложения WHERE, чтобы определить, к каким разделам обращаться. В заявлении INSERT нет предложения WHERE, а оптимизатор в настоящее время не имеет другой механизм, с помощью которого можно обрезать.

Похоже, что разделение разделов в настоящее время является чем-то вроде незавершенного процесса.