mysql优先级队列和打包加载项

hfwmuf9z  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(320)

来自MySQL5.7源代码,
当使用优先级队列排序时,我们不能使用打包的加载项。没有pq,我们可以试试。
问:为什么MySQL5.7在优先级队列中不使用打包插件?

ukxgm1gy

ukxgm1gy1#

打包一个记录的想法是限制内存,例如一个空的 varchar(10000) 使用。但在最坏的情况下(例如,使用最大长度的varchar),打包的记录实际上比未打包的记录需要更多的空间。
对于优先级队列排序,内存是在开始时分配的,因为它必须能够保存最坏情况的记录,所以打包它是没有意义的,所以不使用它。在代码中的这一点上,它实际上是不能被使用的,因为当前的实现和代码的其余部分都希望这些记录被解包(例如,队列分配的内存少于最坏情况下打包的记录所需的内存)。

相关问题