Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Очистка таблицы от записей, delete from ... where ... 
:(
    Опции темы
nIkTo
Дата 17.10.2010, 14:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 218
Регистрация: 5.7.2007

Репутация: нет
Всего: нет



Столкнулся со следующей задачей :
Есть таблица в базе
Код

CREATE TABLE `tasks` (
 `id` int(11) NOT NULL auto_increment,
 `query` varchar(50) collate utf8_bin NOT NULL,
 `language` char(2) collate utf8_bin NOT NULL,
 `status` char(4) collate utf8_bin NOT NULL,
 PRIMARY KEY  (`id`),
 UNIQUE KEY `query` (`query`,`language`),
 KEY `status` (`status`)
) ENGINE=MyISAM

В этой таблице 265272783 записей таблица весит 21 Гб.
Потребовалось удалить из таблицы все записи у которых поле status = done, это около 255299008 записей

Отправил запрос на выполнение : 
Код

DELETE FROM `tasks` WHERE `status` = 'done';

конечно я и не насчитывал на быстрое выполнение этой команды, но боже мой, прошли вторые сутки  smile  
может выполнение этой операции на большой таблице требует много свободного места на диске ? на машине осталось доступным всего 1,5 Гб

Подскажите как "дешевле" очистить таблицу от записей у которых поле status = done ?

Это сообщение отредактировал(а) nIkTo - 17.10.2010, 14:46
PM   Вверх
Zloxa
Дата 17.10.2010, 15:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 33
Всего: 161



Цитата(nIkTo @  17.10.2010,  14:45 Найти цитируемый пост)
Подскажите как "дешевле" очистить таблицу от записей у которых поле status = done ?

create table dst_table select * from src_table where status <> done
drop table srс_table;
rename table dst_table to src_table
alter table add constraint.....
create trigger....

Это сообщение отредактировал(а) Zloxa - 17.10.2010, 16:07


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
nIkTo
Дата 17.10.2010, 15:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 218
Регистрация: 5.7.2007

Репутация: нет
Всего: нет



Zloxa, на машине осталось доступным всего 1,5 Гб думаю этого не хватит для создания и заполнения новой таблицы
PM   Вверх
Akina
Дата 17.10.2010, 15:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 106
Всего: 454



Цитата(nIkTo @  17.10.2010,  16:21 Найти цитируемый пост)
 на машине осталось доступным всего 1,5 Гб думаю этого не хватит для создания и заполнения новой таблицы 

Если 265272783 записей таблица весит 21 Гб и удалить надо около 255299008 записей, то останется 9973775 записей, и весить они будут где-то 0,8 Гб.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Zloxa
Дата 17.10.2010, 15:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 33
Всего: 161



nIkTo, вам надо оставить чуть более трех процентов записей. А 1,5Гб это семь процентов от 21
попробовать, думаю стоит.


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.0471 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.