SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 26.02.2010 10:48:36

LazY
_cмельчак
MySQL Authorized Developer and DBA
Зарегистрирован: 02.04.2007
Сообщений: 849

[размышления] нафига MySQL делать временную таблицу при DROP INDEX?

Вот просто интересно.
Какой смысл, если там данные не меняются. Я еще понимают при ADD INDEX (там чисто теоретически какие-то записи могут слепиться по уникальному ключу; хотя на самом деле по ошибке выкинет). Но при удалении-то зачем?

Кстати. Что за ALTER TABLE ONLINE? Это когда запись разрешается во время изменения таблицы?
Это только в кластере?

Неактивен

 

#2 26.02.2010 10:53:48

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: [размышления] нафига MySQL делать временную таблицу при DROP INDEX?

Ключевое слово ONLINE только для кластера. Надо проверить как это на практике работает.

Про ADD INDEX и DROP INDEX в документации странная фраза "Beginning with MySQL 5.1.7, ADD INDEX and DROP INDEX operations are performed online when the indexes are on variable-width columns only. "

Неактивен

 

#3 26.02.2010 10:56:11

LazY
_cмельчак
MySQL Authorized Developer and DBA
Зарегистрирован: 02.04.2007
Сообщений: 849

Re: [размышления] нафига MySQL делать временную таблицу при DROP INDEX?

В документации вообще как-то не очень понятно..
Почему, интересно, только на столбцах переменной длины? Я бы понял, если наоборот.. Чем столбцы постоянной длины не угодили?..

Неактивен

 

#4 26.02.2010 10:59:55

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: [размышления] нафига MySQL делать временную таблицу при DROP INDEX?

Это связанно либо с форматом хранения индекса либо с особенностями исходного кода MySQL. См. в исходники, там могут быть более понятные комменты.

Неактивен

 

#5 26.02.2010 12:33:39

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: [размышления] нафига MySQL делать временную таблицу при DROP INDEX?

От себя лишь добавлю, что в MySQL есть в коде строки, которые позвляют
добавлять и удалять некластерные индексы вообще без блокировки таблицы.
К сожалению, из-за баги в другой части кода, этого не происходит. Бага в
трекере: http://bugs.mysql.com/bug.php?id=33650 уже два года sad

Неактивен

 

#6 26.02.2010 12:48:30

LazY
_cмельчак
MySQL Authorized Developer and DBA
Зарегистрирован: 02.04.2007
Сообщений: 849

Re: [размышления] нафига MySQL делать временную таблицу при DROP INDEX?

Так вроде написано, что исправили...

Вот почему у них так неясно написано в руководстве smile

Неактивен

 

#7 26.02.2010 12:51:38

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: [размышления] нафига MySQL делать временную таблицу при DROP INDEX?

Не исправили еще, почитай комменты. Наоборот написано, что в 6.0 столько наломали с ALTER TABLE, что исправить что-то не представляется реальным.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson