Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Удаление большого количества строк
 
 автор: Ученик   (20.05.2008 в 14:10)   письмо автору
 
 

Есть таблица в которой довольно много записей 6-10 млн, при этом используется 3-4 ключа. Данные занимают около гигабайта.

Проблема в том что при удалении большого количества строк(50-200к) запросы выполняются очень долго.. Иногда просто виснет МуSQL.

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

Может кто-то сталкивался с такой проблемой, подскажите как вы ее решили.

Вот... unixdate это индексированое поле, почему он так долго удаляет?

mysql> select count(*) FROM `table` WHERE `unixdate` <1211271714 -60 *60 *24 *26-82000;
+----------+
| count(*) |
+----------+
|     4062 |
+----------+
1 row in set (0.01 sec)

mysql> delete FROM `table` WHERE `unixdate` <1211271714 -60 *60 *24 *26-82000;
Query OK, 4062 rows affected (6 min 9.52 sec)

   
 
 автор: cheops   (20.05.2008 в 14:27)   письмо автору
 
   для: Ученик   (20.05.2008 в 14:10)
 

Можно попытаться отключить ключи на это время
ALTER TABLE tbl_name DISABLE KEYS;

Потом включить
ALTER TABLE tbl_name ENABLE KEYS;

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования