我必須在我的項目的某個地方加入3個表格。
這裏是例如表和列:比連接3張桌子更好的方法是什麼?
Table-1 : posts
Columns1: id,owner,title,post,keywords
Table-2 : sites
Columns2: id,name,url
Table-3 : views
Columns3: id,post,view
當我加入所有這些表它發生這樣的小巨大的查詢:
SELECT title,post,keywords,name,url,view
FROM posts
LEFT JOIN sites ON sites.id=posts.owner
LEFT JOIN views ON views.post = post.id
WHERE posts.date BETWEEN '2010-10-10 00:00:00' AND '2010-11-11 00:00:00'
ORDER BY views.view DESC
LIMIT 0,10
是它的唯一途徑我也可以做別的事情來獲得更好的性能?
這是我當前查詢的EXPLAIN。以上只是一個例子。
請發佈`explain`輸出以檢查您的索引是否正確使用 – tobyodavies 2011-01-28 00:40:58
'views'是否保持簡單計數?或者每個帖子的每個視圖都有單獨的條目? – 2011-01-28 00:44:29
我不確定「它發生這樣一個小小的查詢」是什麼意思。很多結果?查詢緩慢? SQL本身比您預期的要大?和「一個很大的疑問」?這是什麼?小或巨大? ;) – siride 2011-01-28 00:54:04