процедура обновления

Ошибки, проблемы, способы их решения.
Аватара пользователя
Alex Keda
Сообщения: 2907
Зарегистрирован: 2009-10-07 14:30:54
Откуда: USSR
Поблагодарили: 20 раз

процедура обновления

Сообщение Alex Keda » 2010-09-25 0:35:25

собсно - процесс "структурировать базу данных" - он слишком долгий.
мне даже пришлось увеличить таймаут для ФастСГИ со 100 до 1000 секунд.
у нас большая база. лучше уже сейчас начинать задумываться что с этим делать.
если нужны доступы, посмотреть что там такое большое и долгое - выдам.
Убей их всех! Бог потом рассортирует...

B0nuse
Сообщения: 79
Зарегистрирован: 2010-04-16 23:10:59

Re: процедура обновления

Сообщение B0nuse » 2010-09-25 6:12:06

Нужно разбить запрос по лимитам и обновлять страницу на новый урл. Примерно так идет процесс обновления в phpbb3 и других форумах...
возможно все...

Аватара пользователя
Alex Keda
Сообщения: 2907
Зарегистрирован: 2009-10-07 14:30:54
Откуда: USSR
Поблагодарили: 20 раз

Re: процедура обновления

Сообщение Alex Keda » 2010-09-25 15:03:47

я не к этому веду...

Код: Выделить всё

440623  h9514_bill      localhost       h9514_bill      Query   1       Sorting result  SELECT `ID` FROM `Tasks` WHERE (`IsActive` = 'yes' AND `IsExecuted` = 'no' AND `ExecuteDate` < UNIX_TIMESTAMP() AND `Errors` < 5) ORDER BY `CreateDate` DESC LIMIT 0, 1
440623  h9514_bill      localhost       h9514_bill      Query   2       Sorting result  SELECT `ID` FROM `Tasks` WHERE (`IsActive` = 'yes' AND `IsExecuted` = 'no' AND `ExecuteDate` < UNIX_TIMESTAMP() AND `Errors` < 5) ORDER BY `CreateDate` DESC LIMIT 0, 1
440623  h9514_bill      localhost       h9514_bill      Query   1       Sorting result  SELECT `ID` FROM `Tasks` WHERE (`IsActive` = 'yes' AND `IsExecuted` = 'no' AND `ExecuteDate` < UNIX_TIMESTAMP() AND `Errors` < 5) ORDER BY `CreateDate` DESC LIMIT 0, 1
440623  h9514_bill      localhost       h9514_bill      Query   2       Sorting result  SELECT `ID` FROM `Tasks` WHERE (`IsActive` = 'yes' AND `IsExecuted` = 'no' AND `ExecuteDate` < UNIX_TIMESTAMP() AND `Errors` < 5) ORDER BY `CreateDate` DESC LIMIT 0, 1
440623  h9514_bill      localhost       h9514_bill      Query   1       Sorting result  SELECT `ID` FROM `Tasks` WHERE (`IsActive` = 'yes' AND `IsExecuted` = 'no' AND `ExecuteDate` < UNIX_TIMESTAMP() AND `Errors` < 5) ORDER BY `CreateDate` DESC LIMIT 0, 1

не находите что долго?
таблица Tasks - ~179,796 записей
я уже предлагал сделать расчленёнку по годам чтоли...
ещё болше ServersUpTime - 1,520,979 - но, она MyISAM - там выборки гораздо быстрей
Events - 316,166 - опять же MyISAM - всё без проблем
Убей их всех! Бог потом рассортирует...

Аватара пользователя
Alex Keda
Сообщения: 2907
Зарегистрирован: 2009-10-07 14:30:54
Откуда: USSR
Поблагодарили: 20 раз

Re: процедура обновления

Сообщение Alex Keda » 2010-09-25 15:10:36

да, если совсем делать нечего будет - может сделать каконить график по ServersUpTime
?
Убей их всех! Бог потом рассортирует...

serge
Сообщения: 171
Зарегистрирован: 2009-10-06 23:43:37
Откуда: Саратов
Контактная информация:

Re: процедура обновления

Сообщение serge » 2010-09-26 8:20:06

Можно конечно покрутить конфиг секции InnoDB, но тут желательно чтобы памяти было достаточно, чтобы вся БД в пул поместилась. Кеши попробовать поувеличивать.
Если в плане структуры БД, то одназначно партиционинг больших таблиц по годам.

Аватара пользователя
Alex Keda
Сообщения: 2907
Зарегистрирован: 2009-10-07 14:30:54
Откуда: USSR
Поблагодарили: 20 раз

Re: процедура обновления

Сообщение Alex Keda » 2010-09-26 12:42:57

обаза вся в раму влезает
тока толку от этого ноль.
некоторые операции на InnoDB медленно выполняются
Убей их всех! Бог потом рассортирует...

serge
Сообщения: 171
Зарегистрирован: 2009-10-06 23:43:37
Откуда: Саратов
Контактная информация:

Re: процедура обновления

Сообщение serge » 2010-09-26 12:46:40

Если все БД в памяти, то тут уже все упираться только в проц должно. По поводу медленности... смотреть нужно, возможно и получится ускорить немного.
===
А вообще смотреть нужно конечно в сторону оптимизации БД (структуры и возможно запросов в скриптах). Думаю на нашем примере это вполне возможно сделать. База уже достаточно большая (хотя еще и не огромная ;) ).

Аватара пользователя
Alex Keda
Сообщения: 2907
Зарегистрирован: 2009-10-07 14:30:54
Откуда: USSR
Поблагодарили: 20 раз

Re: процедура обновления

Сообщение Alex Keda » 2010-09-26 12:51:19

4 оптерона - это совсем не мало.
тредов по топу 27 - т.е. юзаться должны все ядра...
Убей их всех! Бог потом рассортирует...


Вернуться в «Решение проблем»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 6 гостей