0
我正在使用以下MySQL選擇查詢與幾個聯接。我想知道這是多麼好的選擇陳述應該是這樣的:Mysql - 數據庫選擇與幾個連接和表結構
SELECT *
FROM table_news AS a
INNER JOIN table_cat AS b ON a.cat_id = b.id
INNER JOIN table_countries AS c ON a.country_id = c.id
INNER JOIN table_addresses AS d ON a.id = d.news_id
WHERE a.deleted = 0
AND a.hidden = 0
AND a.cat_id = ".$search_cat."
AND a.country_id = ".$search_country."
AND a.title LIKE '%".$search_string."%'
OR a.deleted = 0
AND a.hidden = 0
AND a.cat_id = ".$search_cat."
AND a.country_id = ".$search_country."
AND a.subtitle LIKE '%".$search_string."%'"
這似乎是很多聯接。即使表b和表c只包含3或4個字段,我想知道連接的數量是否會顯着減慢起始頁上的搜索速度?
將表d(街道,城市等)的字段放回到主表中是否會更好,因爲在執行此查詢時大部分時間都需要這些字段?
Thanx提前, 傑登
謝謝你christoph。很高興聽到,即使我仍然懷疑,如果從主表中分離出地址字段,這個查詢似乎沒有問題,但它的確很有意義?!我已經爲地址表的字段「news_id」添加了一個索引,它與主表的字段「id」相對應。添加後,mysql自動處理指標正確? – jayden 2012-02-19 23:05:18
SELECT *只是爲了讓它更具可讀性...... – jayden 2012-02-19 23:12:40