Оптимизировать отчеты php sql
Нужно оптимизировать запрос, сейчас выполнение запроса занимает очень большое время, на сколько я понял проблема в сортировке
CREATE TEMPORARY TABLE t1 AS SELECT calls.setup_time, calls.cli, calls.cld,
cdrs.i_account, cdrs.cost, cdrs.connect_time, cdrs.disconnect_time, cdrs.duration,
cdrs.cli_in, cdrs.cld_in, cdrs.billed_duration, cdrs.result, cdrs.i_cdr, cdrs.delay,
cdrs.remote_ip, cdrs.prefix, cdrs.lrn_cld, cdrs.lrn_cld_in, cdrs.area_name,
calls.call_id, cdrs.release_source
FROM cdrs
JOIN calls USING(i_call)
WHERE {$pre_clause['sql']}
ORDER BY calls.setup_time DESC
{$sql_cdrs_limit}";
$params = $pre_clause['params'];
$db->prepNexec($sql, $params);
вот запрос если убрать ORDER BY calls.setup_time DESC то выполняется за секунды
думаю можно ли этот ордер делать в php
и потом делает еще один запрос чтобы статистику внутри таблицы посчитать
function get_total_info($clause, $cdr_currency) {
global $db;
global $caller, $caller_type, $i_caller;
$sql_acct = "SELECT COUNT(*) AS a, SUM(ROUND(duration)) / 60.0 AS b, SUM(billed_duration) / 60.0 AS c,
SUM((cdrs.cost * x1.rate) / x2.rate) AS d
FROM t1 AS cdrs
JOIN accounts ON cdrs.i_account = accounts.i_account
JOIN x_rates x1 ON (x1.i_customer = accounts.i_customer
AND x1.iso_4217 = accounts.base_currency )
JOIN x_rates x2 ON (x2.i_customer = accounts.i_customer AND x2.iso_4217 = ?)
WHERE {$clause['acct']['sql']}";
$params_acct = array_merge(array($cdr_currency), $clause['acct']['params']);
$sql_cust = "SELECT COUNT(*) AS a, SUM(ROUND(cdrs_customers.duration)) / 60.0 AS b,
SUM(cdrs_customers.billed_duration) / 60.0 AS c,
SUM((cdrs_customers.cost * x1.rate) / x2.rate) AS d
FROM t2 AS cdrs_customers
JOIN customers USING (i_customer)
JOIN x_rates x1 ON (x1.i_customer = customers.i_wholesaler
AND x1.iso_4217 = customers.base_currency)
JOIN x_rates x2 ON (x2.i_customer = customers.i_wholesaler AND x2.iso_4217 = ?)
WHERE {$clause['cust']['sql']}";
$params_cust = array_merge(array($cdr_currency), $clause['cust']['params']);
я думал может можно взять данные в пхп и там уже отсортировать и делать тотал
Полный файл в атачменте, если можете оптимизировать, то пишите, количество записей может быть несколько миллионов.
Applications 1
-
3507 128 2 4 Здравствуйте, я работаю в сфере веб програмирования более 6 лет, и сотрудничал с разными компаниями и клиентами. Я могу осуществить ваш проект и реолизовать ваши идеи касающиеся веб програмирования. Работая со мной вы получите высококачественный код и новотехнологическую систему с современными стандартами и обработкой.
Почему выбрать меня?
1. Работаю без предоплаты
2. Бесплатная помощь по сайту после выполнения заказа
3. Выполню заказ в максимально короткие сроки
-

Вынесения сортировки в php не поможет. У тебя сначала выбираются миллионы записей, а потом они сортируются. Изучи https://dev.mysql.com/doc/refman/5.7/en/order-by-optimization.html
А если есть возможность уменьшить выборку, то это лучший вариант. Неужели будут использоваться все миллионы данных? Делай план запросов и смотри, что имеет больший вес. Многое зависит от конкретных условий в where, индексов, количества данных. Но реально оптимизировать можно запрос в конкретных where параметрах. С динамикой это все намного сложнее. Подумай в сторону изменения логики запроса. Покрути с разных сторон.
-
Current freelance projects in the category Databases & SQL
Need a Power BI specialist to build management reporting based on BAS Accounting CORPAbout the CompanyWe are a distributor of international sports brands in Ukraine. Accounting is maintained in BAS Accounting CORP.We are looking for a specialist who can help build a management reporting system for the company's management based on Power BI.Important: we are… Databases & SQL, Accounting Services ∙ 11 hours 2 minutes back ∙ 3 proposals |
Excel Specialist / Process Automation (Excel + preferably programming)We are looking for a specialist with ADVANCED knowledge of Excel to optimize the existing file and automate processes. It will be a great advantage if you also have programming skills / VBA / Power Query / Power Automate or experience in creating complex logic in Excel. Project… Python, Databases & SQL ∙ 12 hours 53 minutes back ∙ 31 proposals |
Technical task: Integration of Telegram chatbot with BAS1. General Description It is necessary to implement the integration of the chatbot with the BAS system for the transfer and recording of data about products (orders). 2. Input Data (sent by the chatbot): Group ID Product name (with product code) Product price 3. Logic of… Enterprise Resource Planning (ERP), Databases & SQL ∙ 14 hours 21 seconds back ∙ 16 proposals |
1C data integrationOrganize quality preparation and data transfer from 1C to BigQuery for further use in Looker:Organize the data according to the required fields.Prepare a clear structure of tables and intermediate datasets on which dashboards will be built.Set up data loading, gather key… Databases & SQL, Data Processing ∙ 2 days 5 hours back ∙ 9 proposals |
Development of a simple controlling and management record system in Google Sheets "turnkey"Task name: Development of a simple controlling and management record system in Google Sheets "turnkey" for a construction company in Poland (+ online training and implementation assistance) About the company, context, and my main problem Hello, I am looking for an experienced… Databases & SQL, Accounting Services ∙ 3 days 10 hours back ∙ 35 proposals |