N3K
Новичок
Есть довольно объемный запрос к базе данных. Индексы проверил - идет по ним. Вот собственно сам запрос:
Записей в основной таблице около 40к, подключаемые таблицы имеют в основном 10-20 и 300-1000 записей.
Запрос тратит больше всего времени на создание темповых таблиц для подключаемых таблиц.
PHP:
SELECT SQL_CALC_FOUND_ROWS
company.*,act.message AS new_message, tarif.name as tarifName,
tarif.order as tarifOrder,country.name as countryName, area.name as areaName,
city.name as cityName,domains.navigation as domain
FROM jos_repo_c as company
LEFT JOIN jos_repo_activities AS act ON act.company_id = company.id
LEFT JOIN jos__dir_table_name_country AS country ON country.id = company.country
LEFT JOIN jos_dir_area AS area ON area.id = company.area
LEFT JOIN jos_dir_cities AS city ON city.id = company.city
LEFT JOIN jos_repo_tariff_plan as tarif ON company.tarif = tarif.id
LEFT JOIN jos_repo_subdomains AS domains ON domains.repo_id = company.id AND domains.repo = 'jos_repo_c'
WHERE (company.shsite = 1 AND company.trash IS NULL AND ((company.`city` = '1194') OR (company.`city` = '0' AND company.`area` = '91')
OR
(company.`city` = '0' AND company.`area` = '0' AND company.`country` = '3')
OR
(company.`city` = '0' AND company.`area` = '0' AND company.`country` = '0')) )
GROUP BY company.`id` ORDER BY company.`tarif` DESC, company.`countview`
DESC LIMIT 0,10
Запрос тратит больше всего времени на создание темповых таблиц для подключаемых таблиц.
Есть возможность загнать некоторые таблицы в темповые сразу, что б они не тратили время на это в каждом запросе, или как можно решить эту проблему по другому?starting 0.000018
checking query cache for query 0.000104
checking permissions 0.000004
checking permissions 0.000003
checking permissions 0.000003
checking permissions 0.000002
checking permissions 0.000003
checking permissions 0.000003
checking permissions 0.000004
Opening tables 0.000020
System lock 0.000007
Table lock 0.000048
init 0.000084
optimizing 0.000024
statistics 0.000664
preparing 0.000043
Creating tmp table 0.000347
Sorting for group 0.111150
executing 0.000018
Copying to tmp table 0.453444
Sorting result 0.152315
Sending data 0.056218
end 0.000018
removing tmp table 0.041661
end 0.000024
query end 0.000005
freeing items 0.000105
storing result in query cache 0.000020
logging slow query 0.000003
cleaning up 0.000010