我想知道索引是否会加快这个查询。上次检查时需要9秒。交通表有大约300k行,列表和用户5k行。如果这只是一个蹩脚的问题,我也会嘲笑/羞辱。我很久以前写过。我应该为这个臃肿的查询添加什么SQL索引?
它应该得到最多的页面浏览量(流量)。让我知道如果解释缺乏。
SELECT traffic_listingid AS listing_id,
COUNT(traffic_listingid) AS genuine_hits,
COUNT(DISTINCT traffic_ipaddress) AS distinct_ips,
users.username,
listings.listing_address,
listings.datetime_created,
DATEDIFF(NOW(), listings.datetime_created) AS listing_age_days
FROM traffic
LEFT JOIN listings
ON traffic.traffic_listingid = listings.listing_id
LEFT JOIN users
ON users.id = listings.seller_id
WHERE traffic_genuine = 1
AND listing_id IS NOT NULL
AND username IS NOT NULL
AND DATEDIFF(NOW(), traffic_timestamp) < 24
GROUP BY traffic_listingid
ORDER BY distinct_ips DESC
LIMIT 10
P.S.
ENGINE=MyISAM/
MySQL Server 4.3
如果你提供了每列中的表格,这将有所帮助。再加上表格定义和'EXPLAIN SELECT ...'显示的内容。 –
4.3?好家伙!你可以升级或更换提供商,你知道:) –