4
我需要一些幫助優化2個表上的查詢。一個將包含約一百萬,另一個將包含約一千萬行。使用這些MySQL表優化查詢
這裏是表結構 -
Sample Browse and Search Queries
這些查詢過了一分鐘
所以需要很長的時間,大約15至20秒,在某些情況下, ,請看看並建議我如何使它們在實際使用中更快。
P.S.這裏是爲那些2示例搜索查詢計劃和瀏覽查詢...
我需要一些幫助優化2個表上的查詢。一個將包含約一百萬,另一個將包含約一千萬行。使用這些MySQL表優化查詢
這裏是表結構 -
Sample Browse and Search Queries
這些查詢過了一分鐘
所以需要很長的時間,大約15至20秒,在某些情況下, ,請看看並建議我如何使它們在實際使用中更快。
P.S.這裏是爲那些2示例搜索查詢計劃和瀏覽查詢...
你可能想要把對字段的索引你篩選,喜歡CATEGORY_ID,site_enabled,和video_collection日期。
一般來說,使用這種大小的表格,目標是儘可能減少需要連接的行數。
對於您的瀏覽查詢,我只能想象如果它試圖加入所有行,然後將結果過濾爲20,那麼速度會很慢。您可能會嘗試重新編寫它以在頂部使用嵌套選擇20個最喜歡的vids。例如:
select
v.video_id,
v.video_title,
v.video_link,
v.video_total_view,
v.video_likes_count,
v.video_collection_date as date,
v.video_time,
s.site_name
from
(select
video_id,
v.video_title,
v.video_link,
v.video_total_view,
v.video_likes_count,
v.video_collection_date as date,
v.video_time
from icumm_videos
where category_id='1'
and 1277612659 - v.video_collection_date < 86400 * 7
order by video_likes_count desc limit 0,20) v
inner join icumm_sites s on v.site_id = s.site_id and site_enabled>0
left outer join icumm_featured_videos fv on v.video_id = fv.video_id
我看不到您的查詢在使用精選視頻表中的任何內容,因此聯接可能是多餘的。
Hi Rob!這改進了瀏覽查詢,但我仍然堅持搜索查詢,查找2個大表中的2列中的文本。有任何幫助嗎?謝謝,Anjan – anjan 2010-06-27 07:32:22
我會嘗試相同的方法進行搜索查詢 - 只需將匹配條件放入嵌套的SELECT – 2010-06-27 09:47:56
Hi Rob!您的建議確實有助於查詢。但是我發現,一旦行數超過一百萬,mysql全文搜索可能需要更長的時間。所以,我已經去了獅身人面像尋找。謝謝,安鍵 – anjan 2010-06-28 07:00:40