在PostgreSQL(或任何已知的DBMS)中使用字符串主键时,性能会受到多大影响?字符串的前半部分是按字典顺序排列的(作为字符串日期),另一半是随机的,例如:20231201_A32vhfe
更多信息:
- 仅使用相等
=
条件(不使用LIKE
进行范围搜索) - 读取比插入频繁得多
- 密钥长度为15-30(非恒定长度)
- 表将包含约1000万条记录
优化的目标是读,写没关系,因为比较少见。
谢谢你,谢谢
PS:作为附加问题(但不强制选择作为答案),如果:
- 在字符串的第一部分,插入将使用当前时间的键-因此插入通常按日期排序,但不在特定的日期框架内排序
- 插入和删除一样频繁,但删除是从任意位置开始的
1条答案
按热度按时间qlvxas9a1#
它会比整数慢一点,但我怀疑你会注意到差异。如果你想要确定性,运行一个基准测试。
您应该明确地用
COLLATE "C"
定义列,这样就不会有任何自然语言排序规则的开销。