我需要重新優化這個查詢是很慢的。的Sql INNER與查詢爲了參加由蘭德
SELECT al.alias_title, al.title, al.hits, al.created_on,
u.first_name, u.surname,
uf.real_name, uf.user_name,
T.guid_id
FROM album al
INNER JOIN (SELECT imx.id, aix.album_id, imx.guid_id
FROM image imx
INNER JOIN album_image aix
ON imx.id = aix.image_id
ORDER BY FLOOR(RAND() * (SELECT COUNT(1)
FROM image))) AS T
ON al.id = T.album_id
LEFT JOIN user u
ON al.user_id = al.id
LEFT JOIN user_flickr uf
ON u.id = uf.user_id
WHERE al.approved ='Yes'
AND al.visible ='1'
GROUP BY T.album_id
ORDER BY al.title;
我需要一個隨機圖像來顯示每個畫廊的每次。有許多關係 - 圖像,專輯和專輯圖像。我需要爲每張專輯製作一張隨機圖片,然後按專輯排序。我認爲內部查詢和rand函數非常慢。我看過臨時牌桌,但不確定這是否是最好的選擇。
關於每個畫廊多少圖像有哪些?這是否可以輕鬆處理應用程序? –
您應該從SELECT開始使用EXPLAIN並查看它說了什麼。我發現你在子查詢中使用ORDER BY RAND()。這是非常糟糕的做法。首先,你需要優化這個子查詢。也許,你不需要使用aubquery,可能應該分解。 –
數每畫廊圖像的變化相當可觀的一個可能有一個圖像的另一個畫廊可以有200個圖像 –