CrazyHacKeRs
Guest
Поднять производительность функции
Написал функцию, которая просчитывает значение поля на основе других таблиц.
Сделать сложный запрос не предоставляется возможным, так как разная логика получения итогового числа. Поэтому имеется итоговая таблица, в которую и записываются результаты (один раз в сутки)
Т.е.
1) я делаю выборку всех записей где мне нужно вычисленное значение (итоговая таблица - но одно поле пустое, которое и нужно заполнить)
2) в цикле начинаю:
а) просчитывать значение (агрегатные функции из других таб.)
б) в зависимотси от того что получается, накладываю разные математические расчеты (плюсую, умнажаю и тд)
Для каждой записии формулы могут быть различны!!!
в) полученное значение записываю в итоговую таблицу
в) цикл повторяется для след. записи
.....
В итогое, записей не так много около 10-15 тыс., процесс должен будет выполняться один раз в сутки - но уже сейчас по времени это занимает больше часа!
Подскажите в чём дело. Это из-за транзакций и как с этим побороться?
Спасибо.
Написал функцию, которая просчитывает значение поля на основе других таблиц.
Сделать сложный запрос не предоставляется возможным, так как разная логика получения итогового числа. Поэтому имеется итоговая таблица, в которую и записываются результаты (один раз в сутки)
Т.е.
1) я делаю выборку всех записей где мне нужно вычисленное значение (итоговая таблица - но одно поле пустое, которое и нужно заполнить)
2) в цикле начинаю:
а) просчитывать значение (агрегатные функции из других таб.)
б) в зависимотси от того что получается, накладываю разные математические расчеты (плюсую, умнажаю и тд)
Для каждой записии формулы могут быть различны!!!
в) полученное значение записываю в итоговую таблицу
PHP:
UPDATE
.....
В итогое, записей не так много около 10-15 тыс., процесс должен будет выполняться один раз в сутки - но уже сейчас по времени это занимает больше часа!
Подскажите в чём дело. Это из-за транзакций и как с этим побороться?
Спасибо.