Подтвердить что ты не робот

Mysql: что использовать, когда: отбрасывать таблицу, обрезать таблицу, удалять из таблицы

Перечислите различия между следующими командами MySql.

  • drop table tablename;
  • truncate table tablename;
  • удалить из tablename, где 1;

Также из вашего опыта, пожалуйста, скажите мне типичный сценарий использования для каждого.

4b9b3361

Ответ 1

  • drop table tablename;
    • После этого все прошло. Больше нет таблицы. Больше данных.
    • Используйте это, когда вам больше не нужна эта таблица.
  • truncate table tablename;
    • После этого таблица пуста, и (что важно) автоинкрементные клавиши reset to 1. Это довольно буквально похоже на наличие новой таблицы.
    • Используйте это, когда вам просто нужна пустая таблица. Это быстрее, чем DELETE, потому что он просто удаляет все данные. DELETE сканирует таблицу, чтобы сгенерировать количество строк, которые были затронуты.
  • delete from tablename;
    • Это позволяет фильтровать удаляемые строки на основе необязательного предложения WHERE.
    • Используйте это, когда вы хотите удалить определенные записи, например: DELETE FROM tablename WHERE username = 'joe'

Ответ 2

  • Drop удаляет таблицу. Я бы бросил стол, если мне это больше не понадобилось
  • "Операции усечения уменьшают и заново создают таблицу, которая намного быстрее, чем удаление строк по одному, особенно для больших таблиц". - от руководство по MySQL
  • Я бы использовал delete для выполнения удаления (из определенных строк) с запросом.

Я редко "удаляю" что-либо из своих баз данных. Обычно я помещаю столбец флага, например deleted, в качестве логического значения. Я проверю это. Если его true, я не представляю эти данные.

Ответ 3

Удалить

  • удалить только строки
  • Mysql сохраняет свое определение
  • У вас есть шанс вернуться назад.

Округление:

  • Это то же самое, что и удаление, но вы можете снова откатить данные.

Падение

  • удалить данные таблицы и структуру данных из базы данных mysql
  • не может снова выполнить резервное копирование

Если вы хотите удалить только строки, вы можете использовать DELETE
Если вы хотите удалить таблицу из базы данных, вы можете использовать DROP

Перед удалением данных подумайте, полезны ли данные или нет. Потому что вы не можете получить эти данные.

Ответ 4

В дополнение к вышеприведенным ответам на Oracle RDBMS "delete" - это транзакция, которая может быть отброшена, если вы ее не зафиксировали. "Усечение" не может.

Ответ 5

Удалить

  • Оператор DELETE удаляет строки таблицы и возвращает количество удаленных строк.

Обрезать

  • TRUNCATE удаляет таблицу и воссоздает ее. Это намного быстрее, чем удаление строк по очереди.
  • TRUNCATE удаляет все строки из таблицы.
  • TRUNCATE не возвращает количество удаленных строк.

Падение

  • удаляет данные, а также структуру.
  • Разница между таблицей DROP и DELETE заключается в том, что после выполнения инструкции DELETE содержимое таблицы удаляется, но структура остается такой же, но в случае оператора DROP содержимое и структура удаляются.