Попытка запускать следующий запрос в таблице mysql, которая содержит более 3 миллионов строк. Его очень медленный до такой степени, что он довольно сильно зависает, пока сценарий не истечет. Ниже приведен запрос и пояснения из этого запроса, какие-либо предложения?Mysql Query Slow on large table
SELECT SQL_CALC_FOUND_ROWS
listing_track.listingid,
listing_track.commid,
listing.listingname,
listing_package.packagename,
listing.active,
community.commname,
SUM(listing_track.impression) AS listing_impressions,
SUM(listing_track.view) AS listing_views,
SUM(listing_track.phone) AS listing_phones,
SUM(listing_track.forward) AS listing_forward,
SUM(listing_track.coupon) AS listing_coupons,
SUM(listing_track.email) AS listing_emails
FROM listing_track
INNER JOIN listing ON listing_track.listingid = listing.id
INNER JOIN community ON listing_track.commid = community.id
INNER JOIN listing_package ON listing.packageid = listing_package.id
WHERE listing_track.commid =2
GROUP BY listing_track.commid, listing_track.listingid, listing_track.trackip
LIMIT 0 , 25
Вот объясните:
Просто подумайте об этом, чтобы найти нужные данные, чтобы проверить более трех миллионов строк. Это займет время, даже с современными алгоритмами MySQL. –
@Cobra_Fast Я понимаю это, но задавался вопросом, почему его хватало более миллиона строк, когда у меня есть предел. Возможно, я не понимаю mysql и как он работает в этом отношении? – John
он захватывает миллионы строк, потому что, помимо прочего, вы используете 'SQL_CALC_FOUND_ROWS', который дает вам количество записей, возвращаемых запросом, без предложения' LIMIT'. Конечно, им следует подсчитать, сколько их там. – Quassnoi