php очистить таблицу mysql

DELETE. Удаление записей в таблице базы данных MySQL

Команда DELETE

Синтаксис запроса на удаление записи.

Будьте предельно внимательны при выполнении запросов на удаление записей! Если вы не укажите команду WHERE и последующее условие, то будут удалены все записи в таблице.

Удаление нескольких записей таблицы

Для примера удалим несколько записей из таблицы books, которая хранится в базе данных Bookstore.

Оповестим сервер MySQL о базе данных, для которой будут выполнятся запросы.

Далее выведем записи таблицы books с идентификаторами с 1 по 5.

mysql> SELECT id, title, author, price, discount FROM books WHERE id BETWEEN 1 AND 5;
+—-+————————+——————————+———+———-+
| id | title | author | price | discount |
+—-+————————+——————————+———+———-+
| 1 | Капитанская дочка | А.С.Пушкин | 151.20 | 0 |
| 2 | Мертвые души | Н.В.Гоголь | 141.00 | 0 |
| 3 | Анна Каренина | Л.Н.Толстой | 135.00 | 20 |
| 4 | Бесы | Ф.М.Достоевский | 122.00 | 0 |
| 5 | Нос | Н.В.Гоголь | 105.00 | 0 |
+—-+————————+——————————+———+———-+
5 rows in set (0.00 sec)

Допустим необходимо удалить все записи с книгами за авторством Н.В.Гоголя. Запрос на удаление и его результат будет выглядеть следующим образом.

mysql> DELETE FROM books WHERE author= ‘Н.В.Гоголь’ ;
Query OK, 2 rows affected (0.00 sec)

Удаление всех записей таблицы

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

Следующая команда удалит все записи в таблице books.

Источник

Как очистить таблицу в MySQL

В статье мы расскажем, как в MySQL очистить таблицу. Мы покажем два способа и объясним разницу между ними.

Очистить таблицу можно при помощи одной из команд:

Разница между TRUNCATE и DELETE

Команда TRUNCATE является оператором DDL. DDL (Data Definition Language) — это язык определения данных. Операторы языка DDL управляют объектами баз данных: удаляют, создают или переименовывают объекты БД.

Команда DELETE является DML-оператором. DML (Data Manipulation Language) — это язык манипуляции данными. Операторы языка DML позволяют вставить, удалить, изменить, извлечь или обновить данные в базе.

Сравним работу команд:

TRUNCATEDELETE
Удаляет все данные из таблицыМожет удалить часть данных в соответствии с условием WHERE
Удаляет все строки из таблицы освобождением страницУдаляет строки по одной
Записывает в журнал транзакций сведения о каждой удалённой странице, а не строкеДелает запись в журнал транзакций при удалении каждой строки
Работает быстрееРаботает медленнее
Нужны привилегии ALTERНужны привилегии DELETE
Сбрасывает идентификаторыНе сбрасывает идентификаторы
Блокирует таблицу и страницу перед удалениемБлокирует строку перед её удалением

Выбор команды зависит от конкретного случая. Если нужно удалить некоторые строки по условию, подойдёт только DELETE. Если нужно полностью очистить таблицу и сбросить идентификаторы, используйте TRUNCATE.

Понять разницу между командами и определиться с их выбором поможет таблица с операторами каждого языка:

DDLDML
CREATESELECT
ALTERINSERT
DROPUPDATE
TRUNCATEDELETE
COMMENTMERGE
RENAMECALL
EXPLAIN PLAN
LOCK TABLE

Таким образом, операторы DDL управляют структурой, а операторы DML — её содержимым.

Как в MySQL очистить таблицу

Подключитесь к серверу по SSH. Затем подключитесь к MySQL при помощи команды:

Вместо username введите имя пользователя, вместо password — пароль.

Если вы не знаете пароль, попробуйте войти без него при помощи команды:

Если подключение без пароля не настроено, возникнет ошибка:

В этом случае сбросьте пароль от root-пользователя MySQL по инструкции.

TRUNCATE

TRUNCATE полностью очищает таблицу без возможности указать дополнительные условия. Для этого:

Выберите базу данных, в которой находится таблица, которую вы хотите очистить:

Вместо db_name введите имя базы данных.

Очистите таблицу при помощи команды:

TRUNCATE позволяет указать название БД и название таблицы в одном запросе. Для этого используйте команду:

Вместо db_name введите имя базы данных, а вместо table_name введите имя таблицы.

Готово, вы очистили таблицу.

DELETE

Выберите базу данных, в которой находится таблица, которую вы хотите очистить:

Вместо db_name введите имя базы данных.

Очистите таблицу при помощи команды:

Вы можете указать название БД и таблицы в одном запросе:

Вместо db_name введите имя базы данных, а вместо table_name введите имя таблицы.

Готово, вы очистили таблицу при помощи DELETE.

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

DELETE FROM table_name WHERE condition;

Где condition — это условие.

Пример команды, в котором будут удалены все строки, значение столбца, id которых больше 1000:

DELETE FROM table_name WHERE id > 1000;

Как проверить содержимое таблицы

Если вы хотите убедиться, что в таблице не осталось данных, воспользуйтесь командой:

Вместо db_name введите имя базы данных, а вместо table_name введите имя таблицы.

Если таблица пустая, вывод будет следующим:

Источник

Генеральная уборка продолжается: как почистить базу MySQL

Дата публикации: 2016-07-20

php очистить таблицу mysql. Смотреть фото php очистить таблицу mysql. Смотреть картинку php очистить таблицу mysql. Картинка про php очистить таблицу mysql. Фото php очистить таблицу mysql

От автора: вы думаете, что везде убрали? Дом вычистили, машину помыли, детей до блеска «выдраили». А на своем сервере СУБД забыли прибраться! Не умеете? Это не страшно! Сейчас я научу вас, как почистить базу MySQL.

Зачем убирать?

Чтобы не было мусора и пыли. В случае с базами данных имеется в виду «цифровой» мусор. Если ваш ресурс работает на основе CMS, то даже в этом случае в таблицах остаются различные «ошметки» после работы плагинов, системы движка. Ну, может и вы где-то тоже строку «забыли». Постепенно вся эта «пыль» скапливается в огромные пласты, которые затем негативно влияют на быстродействие всего ресурса. А это негативно отражается на юзабилити сайта. В общем, чистить все равно надо и придется.

Кроме этого «выросшая» как на дрожжах база может занимать много виртуального дискового пространства, в результате чего хостер начнет нервничать и заваливать вас сообщении о превышении лимита. Если ничего не предпримите (не перейдете на дорогостоящий тариф, в котором предоставляются большие «площади» под сайт), то он просто «выдернет из розетки» ваш ресурс. Поэтому лучше научиться, как почистить базу данных MySQL, чем тратиться на новый тарифный план или переезд на «новые рельсы».

Также иногда требуется удалить только содержимое таблицы, и сберечь ее структуру. Все это мы рассмотрим в сегодняшнем материале, посвященном правильной уборке на СУБД. Стартуем!

Очищаем таблицу

Часто требуется не удалять таблицу, а лишь очистить ее от всех строк, но при этом сохранить всю ее структуру: типы данных столбцов, индексы, первичные ключи и другие ее параметры. Конечно, можно всегда удалить таблицу целиком с помощью команды DROP TABLTE, но затем придется создавать ее и прописывать все атрибуты заново. А это не совсем удобно, поэтому в MySQL для удаления строк таблицы есть специальная команда. Ее синтаксис:

php очистить таблицу mysql. Смотреть фото php очистить таблицу mysql. Смотреть картинку php очистить таблицу mysql. Картинка про php очистить таблицу mysql. Фото php очистить таблицу mysql

Бесплатный курс по PHP программированию

Освойте курс и узнайте, как создать динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC

В курсе 39 уроков | 15 часов видео | исходники для каждого урока

Источник

Как быстро удалить множество строк из большой базы в MySQL

Как известно, все системные администраторы делятся на две категории. Те, кто уже делают бэкапы и те, кто ещё нет.

Подобно им, администраторы БД также делятся на две категории, те, кто уже запускал процедуру удаления на большой БД с типом таблиц InnoDB, и те, кому это ещё предстоит.

php очистить таблицу mysql. Смотреть фото php очистить таблицу mysql. Смотреть картинку php очистить таблицу mysql. Картинка про php очистить таблицу mysql. Фото php очистить таблицу mysql

Разумеется, в теории все знают, что из-за особенностей InnoDB, удаление может быть долгим, но это знание сродни тому, что «надо делать бэкапы». Многие осознают эти нехитрые истины, только наступив на грабли.

Для понимания, удаление 350М записей в таблице на 500М записей может занять более двух суток. Вторые грабли, на которые многие наступают, это попытка прибить запрос. Как мы все помним, InnoDB движок транзакционный, поэтому если вы попытаетесь прибить запрос, он попытается откатить изменения, а это может занять больше времени, чем выполнялся запрос.

Как сделать так, чтобы не было мучительно больно? Добро пожаловать под кат!

1. Если вы УЖЕ запустили удаление и теперь хотите приблизительно оценить, сколько уже сделано и сколько ещё осталось, используйте SHOW ENGINE INNODB STATUS; Получите длинный вывод. Ищите в нём вашу команду и смотрите undo log entries, это и будет количество уже обработанных записей.

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

2. Если вы только планируете начать удаление, используйте LIMIT.
Количество записей подбирается эмпирически, скажем на не особо мощном сервере я использовал LIMIT 5000, на более мощном LIMIT 50000. Начните с небольших значений и увеличивайте их по необходимости.

а) надо руками запустить запрос необходимое количество раз (ну, или сделать текстовый файл с необходимым количеством строк с запросом и запускать из него.
б) каждый последующий запрос выполняется дольше, чем предыдущий

3. Используйте pt-archiver из комплекта percona-tools.

Я бы рекомендовал именно этот способ по ряду причин:

а) он быстрый;
б) его можно прервать в любой момент;
в) в нём можно наблюдать за прогрессом операции.

В принципе, ключи довольно очевидны, тем не менее, пройдусь по ним:

—source — описывает подключение. Хост, база и таблица. При необходимости можно дописать логин и пароль (в примере я использую креды из

Надеюсь, эта небольшая заметка показалась вам полезной (или хотя бы интересной).
Если вам есть, что добавить, поправить или просто высказаться — пишите!

Отдельной строкой хочу принести благодарность жж-пользователю merkwurdig, поднявшему обсуждение этой проблемы и заставившему меня вспомнить, как я бегал по таким же граблям, жж-пользовательнице svetasmirnova, которая всегда приходит на помощь при затруднениях с MySQL и сообществу ru_root, благодаря которому и появилась эта небольшая статья.

Источник

Как удалить все записи в таблице в phpMyAdmin

В phpMyAdmin если вы хотите удалить запись, то вы можете нажать кнопку «Удалить» напротив ненужной строки или выбрать несколько строк и нажать кнопку «Удалить» внизу таблицы.

php очистить таблицу mysql. Смотреть фото php очистить таблицу mysql. Смотреть картинку php очистить таблицу mysql. Картинка про php очистить таблицу mysql. Фото php очистить таблицу mysql

Если вам нужно удалить все строки и вы попробовали нажать «Отметить все», а затем кнопку «Удалить», то удалены будут только строки на странице. Страниц может быть много — зависит от количества записей и того, сколько строк показано на странице (от 25 до 500). Если страниц несколько, то кнопка «Отметить все» не отмечает записи на других страницах.

Чтобы полностью очистить таблицу от всех строк, выберите базу данных, где находится таблица, которую вы хотите очистить. Затем перейдите на вкладку «Структура» и нажмите кнопку «Очистить».

php очистить таблицу mysql. Смотреть фото php очистить таблицу mysql. Смотреть картинку php очистить таблицу mysql. Картинка про php очистить таблицу mysql. Фото php очистить таблицу mysql

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

У вас на выбор есть две команды delete и truncate.

php очистить таблицу mysql. Смотреть фото php очистить таблицу mysql. Смотреть картинку php очистить таблицу mysql. Картинка про php очистить таблицу mysql. Фото php очистить таблицу mysql

Это приведёт к удалению всего содержимого таблицы, без сброса идентификатора автоматического увеличения, этот процесс очень медленный. Если вы хотите удалить определённые записи, добавьте в конце запроса where.

Это сбросит таблицу, т.е. все поля с автоматическим приращением будут сброшены. Это DDL и очень быстро. Вы не можете удалить какую-либо конкретную запись с помощью truncate.

Например, на моём хостинге при попытке использовать delete я получил сообщение, что данная команда запрещена, но команда truncate прекрасно сработала.

«truncate ИМЯ-ТАБЛИЦЫ» завершится ошибкой для таблицы с определенным ограничением ключа. Он также не будет переиндексировать значение таблицы AUTO_INCREMENT. Вместо этого удалите все записи таблицы и сбросьте индексирование до 1, используя этот синтаксис sql:

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *