0
我正在使用MYSQL我有兩個表我想加入,隨着表變大我想知道什麼是更好的方式來查詢它們。這些表格用於爲各種用戶存儲圖片的網站。有點像Facebook。第一個表是具有Id和源位置字段的圖像表。而另一個表則被稱爲user_images,並帶有一個外部關鍵字,圖像標識將轉到圖像表中。表格沒有放在一起的原因是因爲多個用戶可以擁有相同的圖像,並且這樣做會消除冗餘。sql加入where子句
這裏是我的查詢看起來像把所有圖像的源位置爲特定用戶
SELECT i.source_location
FROM user_images AS u
INNER JOIN images AS i
ON i.image_id = u.image_id
WHERE u.user_id = 'USER'
所以我的問題是,這將是更好的查詢它獲得更快的結果如下圖所示或這沒關係嗎?
SELECT i.source_location
FROM
(SELECT image_id
FROM user_images
WHERE user_id = 'USER') AS u
INNER JOIN images AS i
ON i.image_id = u.image_id
基本上我認爲在做之前,地方的條款將加入使 更快的結果,因爲該數據庫將有一組較短的來比較,因爲連接表將是很多小。我不知道這是否正確。 什麼是最好的方式去做這件事?如果其他人有更好的方法來做這件事,請幫助我,因爲我看到這些表變得相當大。
MySQL查詢優化器將兩者以同樣的方式運行。一般來說,不要擔心表演,直到真人投訴;屆時,您將擁有測試數據以驗證可能的解決方案! – Andomar 2011-02-17 17:58:10
@Andomar - 你應該發佈這個答案,因爲它是這個問題的答案;) – Matten 2011-02-17 18:01:07