python - 在 Postgresql 中存储版本的最佳方式
问题描述
我现在正在开发一个 API,我想存储使用日志。我的 API 现在有几个活动版本,在日志中我希望能够按版本进行排序和搜索。
现在版本以某种vX.X.XX
格式(从 开始)保存为字符串(varchars) v0.0.16
,因此无法通过where api_version > "vX.X.XX"
查询进行搜索。因此,这不是我的情况的最佳解决方案,我想切换到数字。
Postgresql 可以对作为 varchars 的版本进行排序,但速度很慢。
在 python 版本中创建为元组(例如(1, 0, 0)
),因此可以轻松排序。
有没有在 PostgreSQL 中存储版本的最佳方法?什么是最好的类型,并且在排序和搜索中具有不错的速度性能?
解决方案
不确定 Varchar 是否是最佳解决方案,是否可以将字段类型更改为数字并在索引字段中重新保存现有数字,例如 vX.Y.ZZ 为 (x*10000 + y*1000 + z*10)
另一种方法是将您的字符串转换为数字然后排序 - 如此处所述
推荐阅读
- json - 带有 Json 的电子邮件模板
- php - 参数值未在 PHP 类中传递
- node.js - 管理 NodeJS 外部/内部 npm 依赖项的工具
- python - 如何创建多类数据集?
- android - toast message does not show up
- google-apps-script - 保存文件时如何用应用脚本覆盖旧文件?
- .net - Visio VSTO 和 Page.GetFormulas 方法并确保在关闭时清理所有 COM 对象
- oracle - 获取单个用户的表和同义词需要哪个权限
- node.js - 使用 socket.io 进行文件传输
- java - 使用 JPA @Query Annotation 获取自定义实体并混合列和其他实体