假设我有一个类似
的表格Mytaba(aid, int, name varchar(12),...)
myTabb(bid, aid, ...)
然后我有2个SQL与组相似,以获得相同的结果:
Select aid,sum(...)
from Mytaba a join mytabb b on a.aid = b.aid
group by aid
Select a.name,sum(...)
from Mytaba a join mytabb b on a.aid = b.aid
group by a.name
问题:如果group by(int)有更好的性能,那么group by(varchar)?
答案 0 :(得分:0)
假设两者都被索引为int将具有优势,因为它更小
更多的行具有相同的内存量,
无论如何,通过连接,查询必须访问辅助。
如果辅助和名称都是唯一的,那么这两个只会是等价的。
在myTabb中,有关援助的指数会有所帮助 或者,如果这是一个复合键,那么订单辅助,出价可能会导致索引搜索而不是扫描 - 这是一件好事,您不需要单独的辅助索引。