关于打包字段排序的问题

来源:3-8 ORDER BY语句优化-2

那红尘

2021-09-01 20:31:06

varchar(50)和varchar(200)存放yes所占用的空间是一样的,为什么在排序的时候后者会占用更多的内存呢?

写回答

1回答

大目

2021-09-10

varchar(50)和varchar(200)存放yes所占用的空间是一样的,为什么在排序的时候后者会占用更多的内存呢?
………
不好意思哦,刚刚看到这个问题,请问这个结论是哪里的哈?

如果确认有这个结论,我认为是这样的
order by有多种算法
varchar长度虽然不会影响数据存储,尽管大家都是存的yes,但是varchar的长度会影响字段的长度
还记得本节6分半前后,讲到max_length_for_sort_data这个参数,用于控制mysql用何种排序算法。

很可能你的varchar50用的全字段排序,而varchar200用的rowid排序,这种情况下比较其实没有太大意义。

这里只是一个因素,还可能有其他因素。

0

Java架构师-技术专家

千万级电商项目从0到100全过程,覆盖Java程序员不同成长阶段的核心问题与解决方案

2672 学习 · 5839 问题

查看课程