[英]MYSQL/SQL: Query optimisation
我有這個查詢:
SELECT count(member_id) FROM member_favorite_business WHERE business_id=3912 AND member_id=413
當我使用mysql配置文件工具對該查詢進行配置時,它表示此查詢非常糟糕。 它說:
JOIN SIZE: 16128 (VERY BAD, VERY SLOW)
CONTAINS FULL TABLE SCANS (BAD)
我的問題是,我該如何改善?
任何建議將不勝感激
干杯!
在(business_id, member_id)
上添加索引。
您也可以寫COUNT(*)
代替count(member_id)
因為member_id不能為NULL,但是我懷疑這會對性能產生重大影響。
評論中的第二個問題比較困難,您可能希望將其作為單獨的問題發布。 ORDER BY rand()會引起問題,也許其他人對此有建議。 在(coordinates,id)或(id,coordinates)上創建索引,看看哪個更快。 我假設2.1032155,49.1801863是樣本坐標,並且您想在該點的10個“某物”內找到5個匹配項。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.