文章詳情頁
mysql多表聯合查詢優化的問題
瀏覽:114日期:2022-06-17 09:29:12
問題描述
有3個結構幾乎一樣的表,需要從3個表中查詢數據,每個表大概有幾萬條數據,用下面的查詢語句,耗時在5秒以上,請問有什么辦法可以提高查詢效率
SELECT * FROM(SELECT id,title,inputtime,description,url,thumb,status FROM sc_newsUNIONSELECT id,title,inputtime,description,url,thumb,status FROM sc_picUNION SELECT id,title,inputtime,description,url,thumb,status FROM sc_video ) AS aWHERE a.title like ’%中國%’
3張表是無關聯的,所以采用 UNION 方法
問題解答
回答1:分成3次查詢,在server端合并結果
回答2:你把union改成union all效率會好點
回答3:需要看一下執行計劃,不過模糊查詢估計只能走全表掃描的方式了。建議把where條件放在三個查詢語句里面,可能會提升一些性能。
如果確認三個結果集沒有相同的記錄,可以將union換成union all,可以減少結果集合并去重所花費的時間。
回答4:為什么不試試left join
回答5:只有我一個人覺得所有like查詢都需要用sphinx/es/solr來處理嗎?
回答6:我也遇到了這種問題
回答7:你前臺需要一次取出所有結果嗎? 不需要可以考慮limit 部分查詢
相關文章:
1. windows誤人子弟啊2. mysql優化 - MySQL如何為配置表建立索引?3. 實現bing搜索工具urlAPI提交4. 關于mysql聯合查詢一對多的顯示結果問題5. 數據庫 - Mysql的存儲過程真的是個坑!求助下面的存儲過程哪里錯啦,實在是找不到哪里的問題了。6. 我在網址中輸入localhost/abc.php顯示的是not found是為什么呢?7. 如何用筆記本上的apache做微信開發的服務器8. python - linux怎么在每天的凌晨2點執行一次這個log.py文件9. MySQL主鍵沖突時的更新操作和替換操作在功能上有什么差別(如圖)10. 冒昧問一下,我這php代碼哪里出錯了???
排行榜
