postgresql 使用按字典顺序排序的字符串作为主键时的性能影响

2nbm6dog  于 2024-01-07  发布在  PostgreSQL
关注(0)|答案(1)|浏览(158)

在PostgreSQL(或任何已知的DBMS)中使用字符串主键时,性能会受到多大影响?字符串的前半部分是按字典顺序排列的(作为字符串日期),另一半是随机的,例如:20231201_A32vhfe
更多信息:

  • 仅使用相等=条件(不使用LIKE进行范围搜索)
  • 读取比插入频繁得多
  • 密钥长度为15-30(非恒定长度)
  • 表将包含约1000万条记录

优化的目标是读,写没关系,因为比较少见。
谢谢你,谢谢
PS:作为附加问题(但不强制选择作为答案),如果:

  • 在字符串的第一部分,插入将使用当前时间的键-因此插入通常按日期排序,但不在特定的日期框架内排序
  • 插入和删除一样频繁,但删除是从任意位置开始的
qlvxas9a

qlvxas9a1#

它会比整数慢一点,但我怀疑你会注意到差异。如果你想要确定性,运行一个基准测试。
您应该明确地用COLLATE "C"定义列,这样就不会有任何自然语言排序规则的开销。

相关问题