Как очистить базу данных sql
Чистим базу данных MySql от ненужного мусора и ускоряем работу блога

Но перед этим давайте рассмотрим основные элементы, которые так сильно увеличивают размер нашей базы данных, и по порядку будем выполнять действия для уменьшения ее размера.
— Рост статей на блоге (здесь мы ничего оптимизировать не будем, это вполне нормальное явление у каждого развивающегося блога).
— Увеличение количества ревизий (резервные копии написанной статьи). Когда мы пишем статьи на свой блог, движок WordPress автоматически через определенные периоды времени создает резервные копии этой самой статьи. К примеру, последняя написанная мною статья на блог, получила 4 ревизии.
И это притом, что написана она была в текстовом редакторе Word и только после этого вставлена на блог, где я уже проводил небольшие поправки. Теперь представьте ситуацию, если бы я писал статью непосредственно с админки блога. Тогда бы количество ревизий исчислялось бы десятками, а каждая из них это дополнительный размер вашей базы данных.
Чтобы такого больше не повторялось, мы запретим нашему движку создавать резервные копии записей. Для этого откройте файл wp-config.php (он находится в корне вашего сайта) и после строки
вставьте следующую строку
которая полностью запрещает создавать резервные копии записей. В результате у вас должна получится вот такая комбинация:
Если же вы хотите чтобы ревизии постов создавались, но в строго ограниченном количестве, тогда после строки
где цифра 2 означает количество создаваемых ревизий (можете менять ее на любую цифру).
Для того, чтобы создать резервную копию базы данных, зайдите в phpMyAdmin (система управления базами данных) выберите в меню слева нужную вам базу, отметьте все таблицы и нажмите кнопку «Экспорт», после чего жмем «ОК» и сохраняем копию базы данных.
Эти действия хороши для новых записей, а как же быть с уже опубликованными ранее записями с ревизиями? Все очень просто, заходите на своем хостинге в phpMyAdmin и в строке SQL (верхнее горизонтальное меню) выполняете данный запрос:
DELETE FROM wp_posts WHERE post_type = «revision»
и подтверждаете свои действия нажатием кнопки «ОК».
Не переживайте, этот запрос удалит только резервные копии, все ваши записи останутся целыми и невредимыми.
— Рост количества комментариев на блоге. Опять-таки, если это нормальные человеческие комментарии, то все ок, тут наоборот радоваться нужно. Но, наверное, уже все знают, что на 1 нормальный комментарий, приходится около 10 спамных. Для борьбы со спамными комментариями можете прочесть вот эту статью.
Взгляните на мою статистику комментариев:
Больше 23000 комментариев находятся в корзине, и каждый из них занимает свое место в базе данных. Также есть 28 спамных комментариев.
Для того, чтобы удалить все спамные комментарии из базы, данных делаем такой SQL-запрос:
DELETE FROM wp_comments WHERE comment_approved = «spam»
Для удаления всех комментариев из корзины, выполняем такой SQL-запрос:
DELETE FROM wp_comments WHERE comment_approved = «trash»
У многих блоггеров установлен плагин Akismet который довольно хорошо ведет борьбу с назойливыми спамерами, но в свою очередь тоже нагружает базу данных. Для того, чтобы очистить таблицу wp_commentmeta (именно в эту таблицу и записывает свои данные плагин Akismet) совершим такой SQL-запрос:
DELETE FROM wp_commentmeta WHERE comment_id NOT IN (SELECT comment_id FROM wp_comments)
А теперь друзья, давайте все это дело свяжем воедино и скачаем плагин WP-Cleanup целью которого, является выполнение части задач, которые я описал выше, и не только их:
— удаление неодобренных комментариев
— удаление неиспользуемых тегов
— удаление неиспользуемых META-данных
— оптимизация неиспользуемой части БД
Итак, устанавливаем плагин и в консоле блоге переходим по адресу Настройки- WP-Cleanup, отмечаем чекерами все поля и жмем кнопку «Cleanup the selected items!»
Всего через пару секунд вы увидите примерно такое сообщение с уведомлением о выполненной работе по оптимизации:
А теперь давайте сравним результаты до оптимизации базы данных и после.
До начала работ размер базы данных составлял почти 57 Mb, после выполнения всех операций описанных выше размер базы составил 8,7 Mb. Представьте себе, почти в 7 раз размер базы данных стал меньше.
Ну и напоследок можно еще в phpMyAdmin зайти в вашу базу данных выделить все таблицы и выбрать из выпадающего списка пункт Оптимизировать таблицу. После такой оптимизации, вес моей базы данных уменьшился еще на 300 Kb.
Вот так вот друзья. Кстати после проведенной оптимизации, блог стал намного быстрее загружаться, чему я, несомненно, рад.
Ну, а я буду заканчивать этот пост. Обязательно проводите чистку ваших баз, и если что-то непонятно переспросите у меня перед выполнением работ.
Урок 3. Удаление объектов базы данных
На этом коротком занятии рассматривается удаление объектов, созданных на занятиях 1 и 2, а затем удаление базы данных.
Перед удалением объектов необходимо убедиться, что используется нужная база данных:
Отзыв разрешений на хранимые процедуры
С помощью инструкции REVOKE удаляется разрешение на выполнение, предоставленное Mary на хранимую процедуру:
Удаление разрешений
С помощью инструкции DROP удаляется разрешение, предоставленное Mary для доступа к базе данных TestData :
С помощью инструкции DROP удаляется разрешение, предоставленное Mary для доступа к экземпляру SQL Server 2005 (9.x):
С помощью инструкции DROP удаляется хранимая процедура pr_Names :
С помощью инструкции DROP удаляется представление vw_Names :
Удалить таблицу
С помощью инструкции DELETE удаляются все строки таблицы Products :
С помощью инструкции DROP удаляется таблица Products :
Удаление базы данных
Базу данных TestData невозможно удалить во время нахождения в ней; поэтому сначала требуется переключить контекст на другую базу данных и только после этого с помощью инструкции DROP удалить базу данных TestData :
Это заключительный шаг учебника «Составление инструкций Transact-SQL ». Помните, что этот учебник содержит только краткий обзор и не включает описания всех параметров используемых инструкций. Для проектирования и создания эффективной структуры базы данных и настройки безопасного доступа к данным требуется более сложная база данных, чем показанная в примерах данного учебника.
Как урезать / очистить базу данных 1С средствами MS-SQL
Для начала рассмотрим, как происходит резка периода. На определенную дату, чаще всего не конец года, скажем « 31.12.2003 », вычисляются конечные остатки по всем регистрам. Далее, на начало года, на « 01.01.2004 », вводятся эти остатки документами ввода начальных остатков. При этом в новом году в документах не должно быть ссылок на документы прошлого года – так называемых документов, введенных на основании, иначе удаление средствами 1С не сможет удалить документы, на которые есть ссылки. Также следует уделить внимания периодическим реквизитам, введенных документами, так как в момент отмены проведения документа эти периодические реквизиты перестанут существовать. Чтобы не было казусов, все периодические реквизиты, устанавливаемые документами нужно перед удалением выставить заново с начала года.
В совокупности – это достаточно длительный процесс, особенно для больших баз с большим количеством документов в удаляемом периоде.
Что требуется сделать? Просто запустить скрипт, например из SQL Query Analizer ’а. Текст скрипта представлен ниже:
USE MyTestBase
Go
CREATE TABLE ##ID
(IDDOC char(9) primary key clustered)
Go
INSERT INTO ##ID
SELECT DISTINCT IDDOC
FROM _1SJOURN
WHERE (DATE_TIME_IDDOC
После выполнения данного скрипта остается только войти в режим конфигуратора и сделать пересчет служебных данных и пересчет итогов. На случай, если вы не избавились от ссылок на старые документы, то необходимо сделать еще и проверку логической целостности. В настройках поставить « Очищать ссылки ».
| Время, минут:секунд. | Удаление средствами 1C | Удаление средствами MS-SQL |
|---|---|---|
| 53:41 | 5:39 |
Практическое руководство. Как удалить строки из базы данных
Можно удалить строки в базе данных, удалив соответствующие LINQ to SQL объекты из их коллекции, связанной с таблицами. LINQ to SQLпреобразует изменения в соответствующие DELETE команды SQL.
LINQ to SQL не поддерживает или не распознает операции каскадного удаления. Если требуется удалить строку в таблице, имеющей ограничения, необходимо выполнить любую из следующих задач.
Установите правило ON DELETE CASCADE в ограничении внешнего ключа в базе данных.
Используйте собственный код, чтобы сначала удалить дочерние объекты, не допускающие удаление родительского объекта.
В противном случае создается исключение. См. второй пример кода далее в этом разделе.
разработчики, использующие Visual Studio, могут использовать реляционный конструктор объектов для разработки хранимых процедур для той же цели.
В следующих шагах предполагается, что подключение к базе данных Northwind выполняется с помощью допустимого объекта DataContext. дополнительные сведения см. в разделе инструкции. Подключение к базе данных.
Удаление строки в базе данных
Отправьте в базу данных запрос на удаляемую строку.
Отправьте изменение в базу данных.
Пример 1
В первом примере кода в базу данных отправляется запрос на сведения о заказе «Order #11000», помечаются сведения для удаления, а изменения отправляются в базу данных.
Пример 2
Целью второго примера является удаление заказа (с номером 10250). Код сначала проверяет таблицу OrderDetails на наличие в ней дочерних элементов удаляемого заказа. Если в таблице есть дочерние элементы заказа, сначала они, а затем сам заказ помечаются для удаления. DataContext располагает фактические действия по удалению в надлежащей последовательности, чтобы команды удаления, отправляемые в базу данных, подчинялись ее ограничениям.
Удаление базы данных
В этом разделе описывается, как удалить пользовательскую базу данных в SQL Server с помощью SQL Server Management Studio или Transact-SQL.
В этом разделе
Перед началом работы
Удаление базы данных с использованием следующих средств:
Дальнейшие действия. После удаления базы данных
Перед началом
Ограничения
Предварительные требования
Удалите все моментальные снимки базы данных, которые существуют для базы. Дополнительные сведения см. в разделе Удаление моментального снимка базы данных (Transact-SQL).
Если база данных участвует в доставке журналов, удалите доставку журналов.
Если база данных публикуется для репликации транзакций, опубликована или подписана на репликацию слиянием, удалите репликацию из базы данных.
Рекомендации
безопасность
Permissions
Для выполнения инструкции DROP DATABASE пользователь должен, как минимум, иметь разрешение CONTROL на базу данных.
Использование среды SQL Server Management Studio
Удаление базы данных
В обозревателе объектов подключитесь к экземпляру компонента Компонент SQL Server Database Engineи разверните его.
Разверните Базы данных, щелкните правой кнопкой мыши удаляемую базу данных и затем нажмите кнопку Удалить.
Подтвердите, что выбрана верная база данных, а затем нажмите кнопку ОК.
Использование Transact-SQL
Удаление базы данных
Установите соединение с компонентом Компонент Database Engine.
На панели «Стандартная» нажмите Создать запрос.







