Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.06.2011, 19:58   #1
Nick007
Пользователь
 
Регистрация: 17.11.2009
Сообщений: 15
Вопрос оптимизация delete from table

mysql 100 000 000 строк, есть поле time разделяющее таблицу на группы,
выполняется запрос примерно: delete from {table_name} where time< curent_time-86400,
в процессе запрос висит в потоке уже более 8 часов,
все новые запросы к таблице тоже зависают,
как снять запрос с потока не нашел, к тому же есть подозрение что в таком случае все наработки анулинруются,
что делать, ждать дальше завершения или предпринимать какие то действия?
можете ли посоветовать что то для ускорения процесса удаления по условию в огромной таблице?(более 100 миллионов строк)
Nick007 вне форума Ответить с цитированием
Старый 04.06.2011, 20:12   #2
Spawn™Production®
Форумчанин
 
Аватар для Spawn™Production®
 
Регистрация: 06.05.2011
Сообщений: 287
По умолчанию

Индексы по полю выборки есть?
А вообще распиливание таблицы, имхо.
Spawn™Production® вне форума Ответить с цитированием
Старый 04.06.2011, 22:10   #3
Nick007
Пользователь
 
Регистрация: 17.11.2009
Сообщений: 15
По умолчанию

в таблице 7 полей все числовые
в таблице несколько полей на каждом есть индекс.
размер таблицы щас глянуть не могу, запросы таблица не принимает вообще ни какие
очередь запросов к таблице висит более 10 часов
Nick007 вне форума Ответить с цитированием
Старый 04.06.2011, 22:27   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Если не секрет откуда такой огромный объем информации? С датчиков показания снимаешь?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 04.06.2011, 22:31   #5
Nick007
Пользователь
 
Регистрация: 17.11.2009
Сообщений: 15
По умолчанию

можно и так сказать, прсинг динамического текста
Nick007 вне форума Ответить с цитированием
Старый 04.06.2011, 22:33   #6
Nick007
Пользователь
 
Регистрация: 17.11.2009
Сообщений: 15
По умолчанию

вовремя обрезку прозевал и таблица выросла до 144 милионов строк, по идее надо было держать размер гдето на 1 миллионе, данные потерять не могу и редактировать таблицу не выходит
Nick007 вне форума Ответить с цитированием
Старый 04.06.2011, 22:59   #7
Nick007
Пользователь
 
Регистрация: 17.11.2009
Сообщений: 15
По умолчанию

уже несколько раз наткнулся на партиции,
можете ли подсказать мне что это и можно ли с их помощью разбить таблицу по полю с датами?

Последний раз редактировалось Nick007; 04.06.2011 в 23:02.
Nick007 вне форума Ответить с цитированием
Старый 04.06.2011, 23:19   #8
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
Сообщение от Nick007 Посмотреть сообщение
в таблице 7 полей все числовые
в таблице несколько полей на каждом есть индекс.
Кстати, большое количество индексов убыстряет SELECT и должно замедлять INSERT, DELETE и в какой-то мере UPDATE, поскольку редактировать и индексы приходится
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 05.06.2011, 00:57   #9
Nick007
Пользователь
 
Регистрация: 17.11.2009
Сообщений: 15
По умолчанию

Кто ни будь знает как остановить выполнение текущего запроса к базе?
Nick007 вне форума Ответить с цитированием
Старый 05.06.2011, 00:58   #10
Nick007
Пользователь
 
Регистрация: 17.11.2009
Сообщений: 15
По умолчанию

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

в первую каждый час во вторую раз в сутки,
при создании в первой 25го куска этих данных удаляется 1ый
во второй при создании 90го куска удаляеся 1ый.

для отличия кусков данных используется штамп времени в секундах

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

вот гадаю как это лучше реализовать.
Nick007 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
display:table-cell Внутри <table>. Padding не пашет. Kolik317 HTML и CSS 4 19.05.2011 21:05
Как обработать таблицу <table></table> и отобразить данные в программе? Человек_Борща Работа с сетью в Delphi 1 05.10.2010 15:42
нужна одно table где все rows from table 1 но и еще добавленных table 2 Why Помощь студентам 0 20.09.2010 10:29
error C2541: 'delete' : cannot delete objects that are not pointers novokhatsky Общие вопросы C/C++ 2 14.12.2009 10:25
Перегрузка операций new, new[], delete, delete[] IgorKr Общие вопросы C/C++ 1 22.10.2008 12:14