我一直在尋找這個問題的解決方案几天,並找不到任何可以減少運行查詢所花費的時間。MySQL從兩個表中選擇隨機行加入連接
我有2個表:
"product_db":
unique_id - [index]
image
url_title
status - [index]
"product_page"
id
product_unique_id - [index]
page_id - [index]
我想選擇是從product_db隨機圖像,其中狀態=「在線」,產品必須在頁面ID = 3
product_db擁有90,000個產品和product_page有超過150000行。
,我現在使用的查詢是:
SELECT image FROM product_db a, product_page b WHERE b.page_id = 3 AND a.status = 'Online' AND a.unique_id = b.product_unique_id ORDER BY RAND() LIMIT 1
這個查詢需要大約2.3secs運行。網頁加載時間相當長。 我已經嘗試了一些其他查詢,第一次返回從product_page與page_id = 3隨機行,然後查詢product_db(它確實減少了所需的時間),但問題是我無法比較,如果產品是'在線'或不。
嗨,我只是嘗試這樣的查詢並返回一個錯誤: – James 2010-11-17 23:12:51
SELECT映像從product_db一,product_page b WHERE b.page_id = 3 和a.status = '在線' 和a.unique_id = b.product_unique_id AND a.unique_id> = ROUND(RAND()* MAX(a.id)) – James 2010-11-17 23:13:22
#1111 - 組函數的使用無效 我錯過了什麼嗎? – James 2010-11-17 23:14:06