У меня возник вопрос, когда я пытаюсь удалить более 100 000 строк из таблицы mysql, и сервер не зависает, а не на его веб-сайтах.Удалите более 100 000 строк из таблицы mysql - сбои сервера
Я ждал 2 часа, а затем перезапустил сервер и восстановил учетную запись.
Я использовал следующий запрос:
DELETE FROM `pligg_links` WHERE `link_id` > 10000
-
SELECT* FROM `pligg_links` WHERE `link_id` > 10000
работает отлично
есть лучший способ сделать это?
Есть ли каскад удаляет или триггеры участвуют? Существуют ли возможные открытые транзакции, блокирующие таблицу (или связанные таблицы) во время удаления? Это удаление должно выполняться в считанные секунды. – mellamokb
@mellamokb извините, но я не знаю, какие каскадные удаления или триггеры, я могу сказать, что я ничего не менял по стандартным настройкам: SELECT * FROM 'pligg_links' WHERE' link_id'> 10000 отлично работает – Chriswede
удаление 100k должно занять несколько минут. Если это занимает 2 часа, что-то не так, и я предлагаю вам исследовать и учиться на нем. Что такое движок таблицы? сколько записей на этой таблице? вы удаляете таблицу myisam при производстве (возможно, блокировка таблицы)? У вас есть указатель на link_id/или это ПК? ваш сервер mysql перегружен? что вы подразумеваете под «восстановлением учетной записи»? есть ли у вас LOTS на других таблицах данных и innnodb, настроенных без innodb_file_per_table? являются mysql params (например, key_buffer для myisam и пула буферов для настроенного OK)? –