我正在使用MySQL来存储视频游戏数据。我有标题,平台,标签,徽章,评论,开发人员,出版商等表...
当某人正在观看游戏时,最好是让一个查询返回与游戏相关的所有数据,还是最好使用多个查询?直觉上,由于我们有评论,因此将它们包含在同一个查询中似乎毫无意义,因为它们需要进行分页。但是在其他情况下,我不确定是要打破查询还是使用两个查询...
我对性能有点担心,因为我现在正在加入以下表格的游戏:开发者,出版商,元标签,徽章,标题,流派,子类,分类......以获取游戏徽章,(来自games_badges;多对多的游戏桌,多对多到徽章表)我可以做另一个连接,或者运行一个单独的查询....我不确定什么是最好的....
答案 0 :(得分:13)
使用一个查询比使用多个查询要快得多,因为查询的启动和查询计划本身的计算成本很高,并且连续运行多个查询会使服务器每次都更慢。显然,您应该只获得实际需要的数据,但更少的查询总是更好。
因此,如果您要在页面上显示20个游戏,则可以使用LIMIT子句加快查询(仍然只使用一个查询),并且只有在他们到达下一页时再次运行该查询。那或者你可以让他们等待查询完成并立即获得所有数据。一个大的等待或几个小等待。
tl; dr使用尽可能少的查询。
答案 1 :(得分:10)
没有灵丹妙药。
EXPLAIN
s 答案 2 :(得分:3)
这通常是一个处理问题。
显然你总是面对这两个问题,因为如果你问这个问题,两者都不是goto选项,所以选择真的是: