单调函数和缓存行

主要观点:介绍了单调函数的概念,其在不同有序集上的应用,以及在字符串排序等场景中的利用。
关键信息:

  • 单调函数满足(x <= y)则(f(x) <= f(y)),常数函数也是单调的。
  • 单调函数可用于在比较定义域困难时利用比较值域来提高效率。
  • 在字符串排序中,存储字符串的前缀可利用“取固定大小前缀”操作的单调性,提高排序效率。
    重要细节:
  • 以([s1, s2, s3, s4])等形式表示数组中的字符串,比较时需跟随指针到堆内存比较。
  • 示例代码中通过(run)函数测试不同字符串类型的排序时间,如(String)和(AbbreviatedString)。
  • 比较(AbbreviatedString)时先比较前缀,再比较完整字符串。
  • 当字符串前 8 字符相同时,内联存储会增加开销。
    链接:
  • SortSupport in Postgres及后续implementing it for INET types
  • German Strings,将小字符串内联存储在指针使用的数据中。
阅读 15
0 条评论