Как быстро удалить индекс из таблицы?

Тема в разделе "Базы данных", создана пользователем Tima111, 17 июл 2010.

Статус темы:
Закрыта.
Модераторы: latteo
  1. Tima111

    Tima111 Читатель

    Заблокирован
    Регистр.:
    5 июл 2007
    Сообщения:
    218
    Симпатии:
    486
    Делаю так:
    PHP:
    ALTER TABLE `tablicaDROP INDEX `index`
    в MySQL этот запрос висит со статусом "copy to tmp table" уже второй день...
    Компьюетр очень сильно подвисает.
    Может можно удалить индекс без "copy to tmp table"? В таблице 20 миллионов записей.
     
  2. WildZero

    WildZero Писатель

    Регистр.:
    23 дек 2009
    Сообщения:
    5
    Симпатии:
    0
    Второй день говоришь? это уже не здорово, копай в сторону настроек мускула.
     
  3. Tima111

    Tima111 Читатель

    Заблокирован
    Регистр.:
    5 июл 2007
    Сообщения:
    218
    Симпатии:
    486
    Вообще странно, некоторые индексы удаляются практически моментально, а именно 2 индекса больше дня уже заняли...
    Может кто свои настройки скинет my.cnf?
    Машина С2D E6400 4Gb памяти.
     
  4. strij

    strij Постоялец

    Регистр.:
    31 дек 2006
    Сообщения:
    53
    Симпатии:
    12
    MySQL, насколько помню, для всех ALTER TABLE производит полный REBUILD таблиц. Поэтому на миллионных таблицах обычно бывает проще создать новую без этого индекса, перенести в нее данные и затем удалить старую таблицу. Если движок используется MyISAM, то это точно будет быстрее.
     
    Tima111 нравится это.
  5. Tima111

    Tima111 Читатель

    Заблокирован
    Регистр.:
    5 июл 2007
    Сообщения:
    218
    Симпатии:
    486
    Спасибо, уже решил проблему, что-то с ПК было похоже :)
    3 дня он индекс удалял, потом мне надоело (комп подвисал сильно) и я его перезагрузил.
    Снова стал удалять индекс из таблицы - удалился за 14 часов :)
     
  6. zaregan

    zaregan Постоялец

    Регистр.:
    12 авг 2009
    Сообщения:
    70
    Симпатии:
    41
    Сталкивался с подобным. Если в таблице много записей (и полей), индекс удаляется долго. Но 14 часов это круто конечно. ;)
     
  7. McLay

    McLay Постоялец

    Регистр.:
    20 май 2008
    Сообщения:
    71
    Симпатии:
    15
    В таких случаях бывает удобнее создавать копию таблицы без ключей, затем создать нужные. И поменять таблицы местами)
     
Статус темы:
Закрыта.