Для начала - в файле "1C_CDR.php"
Поменяйте
на
Ваш запрос очень не оптимальный, т.к. делает выборку среди всех записей таблицы PT1C_cdr (исходя из EXPLAIN)
Для моей базы с чуть меньше 10 млн записей - этот запрос выполняется 25-30 секунд.
И да на таблице PT1C_cdr нет индекса для linkedid
Поменяйте
| Код |
|---|
$zapros="SEL ECT DISTINCT calldate, src, dst, channel, dstchannel, billsec, disposition, uniqueid, $file_field, '', lastapp, linkedid FR OM PT1C_cdr WH ERE linkedid IN (SELECT linkedid FR OM ".$name_tmp_linkedid.") ORDER BY uniqueid; "; |
| Код |
|---|
$zapros="SELECT DISTINCT P.calldate, P.src, P.dst, P.channel, P.dstchannel, P.billsec, P.disposition, P.uniqueid, P.$file_field, '', P.lastapp, P.linkedid FR OM PT1C_cdr AS P INNER JOIN ".$name_tmp_linkedid." L ON L.linkedid = P.linkedid ORDER BY uniqueid; "; |
Ваш запрос очень не оптимальный, т.к. делает выборку среди всех записей таблицы PT1C_cdr (исходя из EXPLAIN)
Для моей базы с чуть меньше 10 млн записей - этот запрос выполняется 25-30 секунд.
И да на таблице PT1C_cdr нет индекса для linkedid
Изменено: - 27.08.2015 02:19:37