我有这样的疑问:
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)我的问题是,我如何改进这一点?
如有任何建议,我们将不胜感激
干杯!
发布于 2010-11-04 19:41:09
在(business_id, member_id)上添加索引。
您也可以编写COUNT(*)而不是count(member_id),因为member_id不能为空,但我怀疑这是否会对性能产生很大的影响。
发布于 2010-11-04 20:05:19
你在评论中的第二个问题比较难,你可能想把它作为一个单独的问题来发布。按rand()排序会导致问题,也许其他人对此有建议。在(坐标,id)或(id,坐标)上创建索引,看看哪个更快。我假设2.1032155,49.1801863是样本坐标,您希望在该点的10个“大概”范围内找到5个匹配项。
https://stackoverflow.com/questions/4096254
复制相似问题