💱работа с mysql в phpmyadmin

Содержание

ЗАПРОСЫ

Удаление данных от удаленных плагинов и данные постов

После удаления ненужных плагинов в таблице  могут остаться записи от них. В этой же таблице находятся мета данные постов.


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

DELETE FROM wp_postmeta WHERE meta_key = ‘ваш-мета-ключ‘;

Замените ваш-мета-ключ на нужное значение.

Для мультисайта:

DELETE FROM wp_#_postmeta WHERE meta_key = ‘ваш-мета-ключ‘;

Измените # на ID сайта и ваш-мета-ключ на нужное значение.

Удаление спам комментариев

Удалить весь спам из бд можно этим запросом:

DELETE FROM wp_comments WHERE comment_approved = ‘spam‘;

Для мультисайта:

DELETE FROM wp_#_comments WHERE comment_approved = ‘spam‘;

Измените # на ID сайта.

Удаление комментариев, ожидающих проверки

Если у вас много спама, ожидающего проверки, вы можете удалить его этим запросом. Перед удалением проверьте, чтобы не удалились нужные комментарии.

DELETE FROM wp_comments WHERE comment_approved = ‘‘;

Для мультисайта:

DELETE FROM wp_#_comments WHERE comment_approved = ‘‘;

Измените # на ID сайта.

Удаление неиспользуемых тегов

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

DELETE FROM wp_terms wtINNER JOIN wp_term_taxonomy wtt ON wt.term_id = wtt.term_id WHERE wtt.taxonomy = ‘post_tag’ AND wtt.count = 0;

Для мультисайта:

DELETE FROM wp_#_terms wtINNER JOIN wp_term_taxonomy wtt ON wt.term_id = wtt.term_id WHERE wtt.taxonomy = ‘post_tag’ AND wtt.count = 0;

Измените # на ID сайта.

Удаление Trackback и Pingback

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

Trackback

DELETE FROM wp_comments WHERE comment_type = ‘trackback‘;

Для мультисайта:

DELETE FROM wp_#_comments WHERE comment_type = ‘trackback‘;

Измените # на ID сайта.

Pingback

DELETE FROM wp_comments WHERE comment_type = ‘pingback‘;

Для мультисайта:

DELETE FROM wp_#_comments WHERE comment_type = ‘pingback‘;

Измените # на ID сайта.

Выключить эти функции в WordPress можно в Настройках — Обсуждения.

Удаление ревизий постов

Сохраненные версии постов хранятся в базе данных. Если у вас большой сайт, большое количество ревизий сильно увеличивает ее размер. Чтобы удалить их все, используйте этот запрос:

DELETE a,b,c FROM wp_posts aLEFT JOIN wp_term_relationships b ON ( a.ID = b.object_id)LEFT JOIN wp_postmeta с ON ( a.ID = c.post_id)LEFT JOIN wp_term_taxonomy d ON ( b.term_taxonomy_id = d.term_taxonomy_id)WHERE a.post_type = ‘revision’AND d.taxonomy != ‘link_category’

Для мультисайта:

DELETE a,b,c FROM wp_#_posts aLEFT JOIN wp_#_term_relationships b ON ( a.ID = b.object_id)LEFT JOIN wp_#_postmeta с ON ( a.ID = c.post_id)LEFT JOIN wp_#_term_taxonomy d ON ( b.term_taxonomy_id = d.term_taxonomy_id)WHERE a.post_type = ‘revision’AND d.taxonomy != ‘link_category’

Замените # на ID сайта.

Удаление шорткодов плагинов и тем

Если вы пользовались каким-то плагином, который вставляет шорткоды, или вы сменили тему, в которой были встроены шорткоды, то теперь шорткоды появятся на сайте в виде текста. Чтобы удалить все записи о шорткодах из базы данных, сделайте этот запрос:


UPDATE wp_post SET post_content = replace(post_content, ‘‘, »);

Для мультисайта:

UPDATE wp_#_post SET post_content = replace(post_content, ‘‘, »);

Измените # на ID сайта.

Удаление постов старше Х дней

Если вы хотите удалить посты старше Х дней, используйте этот запрос:

DELETE FROM ‘wp_posts’WHERE ‘post_type’ = ‘post’AND DATEDIFF(NOW(),’post_date’) > X-дней

Замените X-дней на нужное число дней.

Для мультисайта:

DELETE FROM ‘wp_#_posts’WHERE ‘post_type’ = ‘post’AND DATEDIFF(NOW(),’post_date’) > X-дней

Измените # и X-дней.

Удаление других комментариев

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

SELECT FROM wp_commentsmeta WHERE comment_idNOT IN (SELECT comment_idFROM wp_comments);

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

SELECT FROM wp_#_commentsmeta WHERE comment_idNOT IN (SELECT comment_idFROM wp_#_comments);

Замените # на ID сайта.

АргументыArguments

database_namedatabase_nameИмя базы данных.Is the name of the database.

schema_nameschema_nameИмя схемы, которой принадлежит таблица.Is the name of the schema to which the table belongs.

table_nametable_nameИмя таблицы, которая должна быть усечена, или таблицы, из которой удаляются все строки.Is the name of the table to truncate or from which all rows are removed. table_name должно быть литералом.table_name must be a literal. table_name не может быть функцией OBJECT_ID() или переменной.table_name cannot be the OBJECT_ID() function or a variable.

WITH ( PARTITIONS ( { <partition_number_expression> | <range> } ) )WITH ( PARTITIONS ( { <partition_number_expression> | <range> } ) )Применимо к: SQL ServerSQL Server (с SQL Server 2016 (13.x);SQL Server 2016 (13.x) до текущей версии)Applies to: SQL ServerSQL Server ( SQL Server 2016 (13.x);SQL Server 2016 (13.x) through current version)

Указывает секции для усечения или секции, из которых удаляются все строки.Specifies the partitions to truncate or from which all rows are removed. Если таблица не секционирована, аргумент приведет к возникновению ошибки.If the table is not partitioned, the argument will generate an error. Если предложение не указано, будет усечена вся таблица.If the clause is not provided, the entire table will be truncated.

<partition_number_expression> можно указать одним из следующих способов.<partition_number_expression> can be specified in the following ways:

  • Указав номер секции, например Provide the number of a partition, for example:

  • Указав номера нескольких секций, разделив их запятыми, например Provide the partition numbers for several individual partitions separated by commas, for example:

  • Указав диапазоны секций и отдельные секции, например Provide both ranges and individual partitions, for example:

  • <range> можно указать в виде номеров секций, разделенных словом TO, например .<range> can be specified as partition numbers separated by the word TO, for example:

Для усечения секционированной таблицы таблицы и индексы должны быть выровнены (секционированы одной функцией секционирования).To truncate a partitioned table, the table and indexes must be aligned (partitioned on the same partition function).

Синтаксис

Простая форма синтаксиса для оператора DROP TABLE в MySQL:

DROP TABLE table_name;

Полный синтаксис для оператора MySQL DROP TABLE:

DROP TABLE table_name1, table_name2, … ;

Параметры или аргументы

TEMPORARY — необязательный. Он указывает, что только временные таблицы должны быть удалены с помощью оператора DROP TABLE.table_name — имя таблицы для удаления из базы данных.table_name1, table_name2 — таблицы для удаления из базы данных при удалении более одной таблицы в операторе DROP TABLE.IF EXISTS — необязательный. Если указан, то оператор DROP TABLE не будет вызывать ошибку, если одна из таблиц не существует.RESTRICT — необязательный. Он не влияет на оператор DROP TABLE, но включен в синтаксис, чтобы упростить перенос таблиц в разные базы данных.CASCADE — необязательный. Он не влияет на оператор DROP TABLE, но включен в синтаксис, чтобы упростить перенос таблиц в разные базы данных.

Предыстория

Проблема: свертка стандартными средствами происходила неприлично долго. Точней, именно этап удаления старых данных. Остатки вводятся быстро, а вот удаление движений регистров, пометка на удаление документов, само удаление — по нашим оценкам на наших объёмах (500ГБ) заняло бы недели.

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

Препятствия: Данные в SQL хранятся в разных таблицах. Таблиц много, как их связать — не всегда понятно. То есть мало очистить сам документ (шапку), надо очистить также данные табличных частей, и движений документа. Движения по разным регистрам. Для одного документа регистров может быть много. Каждый регистр в свою очередь хранит данные также в нескольких таблицах. Наименования таблиц — неосмысленные.

Вариант 3, Удалить MySQL из командной строки

Для разнообразия удалим MySQL из командной строки операционной системы.

Шаг 1.

Из командной строки удаляем службу MySQL. Идем в Пуск→Командная строка в меню пуск. На правой кнопке командной строки запуск сервер от имени Администратора. В строке вводим команду: (без скобок).

Шаг 2.

Удаляем MySQL через панель или инсталятором (первый или второй вариант), на выбор.


Шаг 3.

Удаляем следы MySQL, то есть, папки содержащие MySQL.

По умолчанию MySQL ставится в папки:

Windows 7: и

Windows XP: и .

Плагины WordPress для оптимизации базы данных

4 лучших плагина оптимизации базы данных в порядке увеличения функционала.

Сделайте бэкап базы данных перед использованием этих плагинов. Некоторые из плагинов удаляют посты, имеющие статус Черновик. Убедитесь, что все Черновики опубликованы.

WP Sweep

WP-Sweep

Author(s): Lester ‘GaMerZ’ Chan

Current Version: 1.1.3

Last Updated: 20.05.2020

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

WP Optimize

WP-Optimize — Clean, Compress, Cache.

Author(s): David Anderson, Ruhani Rabin, Team Updraft

Current Version: 3.1.2

Last Updated: 31.07.2020

WP Optimize (бесплатный) — делает то же самое, но в нем есть автоматическое расписание очистки и оптимизации БД. Для оптимизации базы данных он использует прямые запросы к базе данных и оставляет после себя некоторые записи. Настроек минимум, подходит для новичков.

У плагина более 800.000 установок, регулярно обновляется, написан группой известных разработчиков.

В одной из последних версий в плагине появилось кеширование на уровне плагина и сжатие изображений.

Advanced Database Cleaner

Advanced Database Cleaner

Author(s): Younes JFR.

Current Version: 3.0.0

Last Updated: 11.04.2020

Advanced Database Cleaner (бесплатный) аналогичен предыдущему, но есть мощный инструмент редактирования базы данных вручную, редактирования cron-расписания и редактирования таблицы options базы данных. Плюс в том, что есть все, что нужно, некоторый минус в том, что для оптимизации используются прямые запросы к базе данных.

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

Advanced Database Cleaner Pro

Advanced Database Cleaner Pro (платный) показывает, чему соответствует каждая запись в базе данных.

Хороший плагин.

Описание некоторых терминов, которые используются БД.

Orphan comment meta. То же самое, что post meta, — комментарии, которые не относятся ни к одному посту. Нужно удалять.

Orphan relationships. Таблица wp_term_relationships наполняется связями между постами, которые связывали удаленные посты. Если время от времени вы удаляете контент на сайте, то связи между удаленными страницами наполняют эту таблицу. Со временем эти записи наполняют таблицу и занимают место в базе данных. Удаляйте.

Dashboard transient feed. Это врéменные данные, которые хранятся в базе данных и имеют срок существования, после чего удаляются.

Заключение

После оптимизаци базы данных сайт должен начать работать немного быстрее. Бэкап будет работать быстрее. На больших сайтах с высокой посещаемостью после очистки и оптимизации базы данных сайт будет работать заметно быстрее.

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

Автоматическую оптимизацию можно настроить по расписанию. В зависимости от посещаемости и контента выберите 1 — 7 дней.

  • Как работает база данных
  • Как изменить префикс базы данных
  • Ускорение и оптимизация Вордпресс

Надеюсь, статья была полезна. Оставляйте комментарии.

Теория

Варианты (операторы) удаления в SQL.

  1. DROP — полное удаление таблицы из структуры данных (вместе с данными). То есть очищаются не только данные, но и метаданные. Работает мгновенно.
  2. TRUNCATE — полная очистка таблицы с сохранением структуры таблицы (очищаются только строки таблицы, колонки остаются прежними). Работает мгновенно.
  3. DELETE — удаление записей в таблице по определенному условию. Занимает определенное время.

Оператором DROP на практике я почти не пользуюсь. TRUNCATE — иногда пригождается, когда по условию задачи возможно удалить всю таблицу (данные не нужны совсем, либо можно после удаления загрузить откуда-то только нужную часть). В остальных случаях (в том числе в рамках данной методики) используется DELETE. 

Для того, чтоб удалить данные целостно по ряду связанных таблиц документа (шапка, ТЧ, движения) — сперва я рассматривал вариант честно отобрать данные документа по дате, а потом уже связать с другими таблицами через JOIN. То есть очистить поочередно все связанные таблицы, после чего удалить основную (так как только в ней есть реквизит, по которому решаем удалять объект или нет)

В итоге была выбрана и реализована следующая стратегия

  1. Удаляем движения регистров, которые двигает нужный вид документа, по связке с основной таблицей документа
  2. Удаляем строки табличных частей документа, по связке с основной таблицей документа
  3. Удаляем основную таблицу документа
  4. Очищаем целиком таблицы журналов, где участвует документ (нехорошо, но в нашем случае — не критично, можно и не трогать)
  5. Опционально можно очистить таблицы регистрации изменений для обмена

Таблиц много + названия неудобные + конструктора запросов нет = очень много рутины с высокой вероятностью ошибки и дороговизной ошибок. Поэтому был создан инструмент, берущий большую часть рутины на себя.

Зачем чистить базу MySQL


База данных MySQL это такая же система захламления, как и реестр в Windows. Те кто обладают Mac-ами часто даже не подозревают насколько им повезло, что в MacOS вместо табличного сохранения данных используется файловое.

В базу данных MySQL записывается разного рода информация, в том числе от установленных на сайт плагинов. Иногда в поисках нужного плагина приходится устанавливать много других. Потом эти плагины удаляешь, а они свои данные оставляют в MySQL. Так постепенно база данных захламляется ненужного рода информацией.

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

Старые табличные данные иногда при экспорте-импорте могут вызывать ошибки. Кроме того они же могут вызывать проблемы при взаимодействии с другими плагинами.

Конечно, можно жить без оптимизации таблиц, часто пустые табличные данные ни на что не влияют, как можно и не убирать пыль под диваном. И пока не загляните, не испугаетесь. Но это уже выбор каждого отдельного человека.

Чистка реестра Windows

Для успокоения души, поищем следы MySQL в реестре операционной системы (Windows 7).

Вариант чистки реестра Windows 7, опасный

Этим вариантом не следует пользоваться, если вы не представляете, как исправить ошибку.

Откройте реестр Windows 7. Для этого в Меню Пуск→Выполнить, вписываем команду: regedit.

В окне «Редактор реестра» поиском ищем, только раздел, слово MySQL и удаляем его.

Ищем по имени только разделы.удаляем MySQL

Примечание: На фото вы видите, что в реестре нашелся раздел MySQL. Это потому, что я не удалял MySQL Installer и оставил его для примера поиска по реестру.

Вариант 2, безопасная чистка реестра программой CCleaner

Ставим программу «чистильщик Windows», например Defraggler или CCleaner и чистим реестр безопасно. На фото CCleaner.

Чистка реестра CCleaner-freeCCleaner создаст резервую копию реестраРеестр исправлен

Удаление помеченных объектов, замена ссылок. Обычное и управляемое приложение. Не монопольно, включая рекурсивные ссылки, с отбором по метаданным и произвольным запросом Промо

Обработка удаления помеченных объектов с расширенным функционалом. Работает в обычном и управляемом приложении. Монопольный и разделенный режим работы. Отображение и отбор по структуре метаданных. Отборы данных произвольными запросами. Копирование и сохранение отборов. Удаление циклических ссылок (рекурсия). Представление циклических в виде дерева с отображением ключевых ссылок, не позволяющих удалить текущий объект информационной базы. Удаление записей связанных независимых регистров сведений. Групповая замена ссылок. Индикатор прогресса при поиске и контроле ссылочности.

10 стартмани

31.10.2016    50199    591    m..adm    210    

Универсальный редактор реквизитов объектов. Мультиобработчик Промо

Объекты: Справочник, Документ, ПланОбмена, ПВХ, Бизнес-процесс, Задача, ПланСчетов, ПВР. Мультиобработчик: -Проведение, перенумерация, движения, копирование, создание на основании, подчиненность, статистика, удаление документов. -Регистрация изменений объекта(ов) в планах обмена. -Установка/Отключение ГлавногоУзла РИБ. -Поиск и восстановление «Битых» ссылок. -Недопустимые символы XML/Дерево XML. -Поиск и замена ссылок. -Ошибки ИБ, в т.ч XML. -Множество обработок справочников. -GUID. Дата и время создания объектов ссылочного типа. -Аналитика предопределенных, блокируемых реквизитов, ХранилищаЗначений. -История изменений объекта. -Активные пользователи. -Подписки на события, функциональные опции. -Загрузка пользователей ИБ из Windows, Active Directory. -Выгрузка/Загрузка пользователей ИБ в/из внешний XML-файл. -Поддержка различных режимов модальности. Файловый, Клиент-Серверный варианты. Обычная и Управляемая формы.

1 стартмани

28.12.2011    166030    2258    StepByStep    419    

Пример с двумя условиями

Рассмотрим MySQL пример DELETE, где у нас есть только два условия в инструкции DELETE. Например:

MySQL

DELETE FROM contacts WHERE last_name = ‘Markoski’ AND contact_id < 2000;

1 2 3

DELETEFROMcontacts

WHERElast_name=’Markoski’

ANDcontact_id<2000;

Этот MySQL пример DELETE удалит все записи из таблицы contacts, где last_name = ‘Markoski’, а customer_id менее 2000.

Вы можете проверить количество строк, которые будут удалены. Вы можете определить количество строк, которые будут удалены, вызвав функцию mysql_info или выполнив следующую MySQL предложение SELECT перед выполнением удаления.

MySQL

SELECT count(*) FROM contacts WHERE last_name = ‘Markoski’ AND contact_id < 2000;

1 2 3 4

SELECT count(*)

FROMcontacts

WHERElast_name=’Markoski’

ANDcontact_id<2000;

Вариант 2, Автоматическое удаление MySQL

Для автоматического удаления, нам понадобится программа MySQL Installer (в первом варианте мы её удалили).

Чтобы удалить MySQL вместе с аккаунтом root, запускаем MySQL Installer;

Жмем Remove (справа таблицы);

В таблице выделяем, то, что хотим удалить, в моем примере это веб-сервер MySQL 5.7.11 и удаляем по шагам инсталлятора (смотрим фото).

Если Вы ставили больше компонентов MySQL, картинка в окне будет такой:

Удаление полного набора MySQL

Инсталятор попросит подтвердить удаление

Начался процесс удаления MySQL

Инсталятор спросит, нужно ли удалять данные из папки ProgramData

Процесс удаления MySQL завершен

На последнем этапе можно удалить и сам инсталлятор MySQL Installer (чекбокс внизу таблицы на следующем фото).

Использование среды SQL Server Management StudioUsing SQL Server Management Studio

Удаление столбцов с помощью обозревателя объектовTo delete columns by using Object Explorer

  1. В обозревателе объектовподключитесь к экземпляру компонента Компонент Database EngineDatabase Engine.In Object Explorer, connect to an instance of Компонент Database EngineDatabase Engine.
  2. В обозревателе объектов найдите таблицу, из которой нужно удалить столбцы, и разверните ее, чтобы отобразить имена столбцов.In Object Explorer, locate the table from which you want to delete columns, and expand to expose the column names.
  3. Щелкните правой кнопкой мыши столбец, который необходимо удалить, и выберите команду Удалить.Right-click the column that you want to delete, and choose Delete.
  4. В диалоговом окне Удаление объекта нажмите кнопку ОК.In Delete Object dialog box, click OK.

Если столбец содержит ограничения или другие зависимости, то в диалоговом окне Удаление объекта будет отображено сообщение об ошибке.If the column contains constraints or other dependencies, an error message will display in the Delete Object dialog box. Чтобы устранить проблему, удалите упомянутые ограничения.Resolve the error by deleting the referenced constraints.

Порядок действий

  1. Делаем архив
  2. Составляем список удаляемых данных (самые большие таблицы, которые удалить стандартными средствами слишком долго / неудобно / не хочется разбираться с тем, что удаляемые данные зарегистрируются к обмену и «пойдут» куда не надо)
  3. Запускаем обработку, при желании сверху ставим отбор
  4. Выделяем в списке нужные виды документов (обязательно выделяем ОСНОВНЫЕ таблицы, то есть таблицы шапок, а не табличных частей) Можно сразу несколько с Ctrl-ом (доступно множественное выделение)
  5. Переходим на вторую закладку и выбираем нужный нам вариант удаления (например по дате)
  6. Нажимаем соответствующую кнопку по формированию скрипта
  7. Получаем в окне сообщений готовый скрипт на удаление данных на языке SQL
  8. Копируем в буфер, вставляем в SQL Management Studio
  9. При надобности корректируем. Например через замену (Ctrl+H) можно заменить «<» на «>=», и получится скрипт удаляющий данные документов не до указанной даты, а, наоборот, — начиная с неё. Либо отбор по дате можно заменить на пометку документа на удаления (_Marked = 1). Либо чтоб удалялись только непроведенные (_Posted = 0). 
  10. Запускаем на выполнение, дожидаемся завершения, наблюдаем за статусом на закладке Messages
  11. Проверяем результат в 1С
  12. Обязательно пересчитываем итоги затронутых регистров накопления и бухгалтерии, так как таблицы итогов не обрабатываются

При желании протестировать/посмотреть «что именно будет удаляться» предусмотрена соответствующая опция (галочка справа внизу), в этом случае скрипты будут формироваться с оператором SELECT, а не DELETE. Можно выделить нужный кусок, запустить на исполнение, посмотреть результаты, прежде чем запускать на удаление.


С этим читают