可以說,我有一個表來存儲每個用戶的博客(表名是博客)。 但也有一個表來存儲用戶喜歡的其他用戶的博客(表名是likedBlogs),是嗎?優化查詢:選擇在選擇
所以檢索他們我只是這樣做: - 選擇用戶的博客。 - 添加他喜歡的博客。
$q = mysql_query("
SELECT id
FROM blogs
WHERE (iduser = $id)
OR id IN
(SELECT idblog
FROM likedBlogs
WHERE iduser='$id')
AND (id > 0)
ORDER BY id DESC
LIMIT 20
") or die(mysql_error());
我可以做得更好嗎? (你將如何在性能上符合此查詢?)
感謝
是EXISTS更快得到更好的服務? –
@Toni Michel Caubet:是的,在大數據集上很明顯。請參閱我提供的鏈接,我相信你可以在intrawebs中搜索'EXISTS vs IN MySql',你會發現很多評論 – sll
在SQL Server 2005+中,'EXISTS'和'IN'評估相同,謝天謝地。 – JNK