首页 > 解决方案 > 在 Postgresql 中存储版本的最佳方式

问题描述

我现在正在开发一个 API,我想存储使用日志。我的 API 现在有几个活动版本,在日志中我希望能够按版本进行排序和搜索。

现在版本以某种vX.X.XX格式(从 开始)保存为字符串(varchars) v0.0.16,因此无法通过where api_version > "vX.X.XX"查询进行搜索。因此,这不是我的情况的最佳解决方案,我想切换到数字。

Postgresql 可以对作为 varchars 的版本进行排序,但速度很慢。

在 python 版本中创建为元组(例如(1, 0, 0)),因此可以轻松排序。

有没有在 PostgreSQL 中存储版本的最佳方法?什么是最好的类型,并且在排序和搜索中具有不错的速度性能?

标签: pythonsqldatabasepostgresqldatabase-design

解决方案


不确定 Varchar 是否是最佳解决方案,是否可以将字段类型更改为数字并在索引字段中重新保存现有数字,例如 vX.Y.ZZ 为 (x*10000 + y*1000 + z*10)

另一种方法是将您的字符串转换为数字然后排序 - 如此处所述


推荐阅读