我有兩個表 - >LEFT JOIN比內部快得多JOIN
用戶
user_id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY username VARCHAR(200) NOT NULL
坪
ping_id INT UNSIGNED NOT NULL AUTO_INCREMENT PPRIMARY KEY disqus_id VARCHAR(32) NOT NULL user_id INT UNSIGNED NOT NULL INDEX combo1(disqus_id,user_id)
我運行此查詢 - >
EXPLAIN SELECT pings.*, username
FROM pings
INNER JOIN users USING(user_id)
WHERE pings.disqus_id = 'post_168' AND user_id = '1'
ORDER BY pings.ping_id DESC LIMIT 2
pimgs下的Extra
列爲Using where; Using temporary; Using filesort
,並且在用戶下方說Using where; Using join buffer
。
我運行此查詢 - >
EXPLAIN SELECT pings.*, username
FROM pings
LEFT JOIN users USING(user_id)
WHERE pings.disqus_id = 'post_168' AND user_id = '1'
ORDER BY pings.ping_id DESC LIMIT 2
的Extra
下pimgs柱說Using where
下用戶是空的。
發生了什麼事?
每個人需要多長時間? – ruakh 2013-02-21 19:27:46
您意識到「INNER JOIN」和「LEFT JOIN」是對結果集有不同影響的不同類型的查詢。 – CAbbott 2013-02-21 19:27:59
你能詳細解釋@CAbbott – sanchitkhanna26 2013-02-21 19:32:36