开发者社区> 问答> 正文

PostgreSQL的id选择uuid类型还是string,请从查询性能解释一下,谢谢

如题。PostGreSQL查询时,uuid是怎么比较的,我设置id类型的时候推荐使用哪种类型?

展开
收起
a123456678 2016-07-01 15:45:55 6657 0
2 条回答
写回答
取消 提交回答
  • uuid本身就是string,但是uuid对位数有要求,所以如果你的数据量不大的时候,也就是string的位数不多的时候,string是有优势的。但是,长string做主键,本身对性能就是有影响的,因为string占的空间大,索引空间也大。更好的做法是使用数字做主键,减少索引长度。

    2019-07-17 19:50:10
    赞同 展开评论 打赏
  • PostgreSQL 能夠很靈活的定義字段類型, 甚至是你自己定義類型
    這個 uuid 類型即是如此, 實際上 uuid 存儲是通過 varchar 來存儲的
    查詢中和 varchar 的查詢方式相同, 真對於 varchar 的一些函數,
    比如 length , 因爲字段是 uuid 類型不能直接使用可以通過 col::varchar
    轉換一次.
    和 varchar 類型主要不同是, uuid 或者自定義類型, 寫入時是限定寫入格式的, 比如 uuid 類型的字段
    寫入數據時格式必須是 uuid 字符串, 不符合這個格式, 寫入就會報錯

    另主鍵設置, int 相對 varchar 要快(不過依稀記得在某處見過說 PostgreSQL 中其實差不多, 當然應該是長度相當).
    關於自增, 其實很多場景下並不完美, 這就看具體需求了.

    2019-07-17 19:50:10
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
云栖大会:开源 PolarDB 架构演进、关键技术与社区建设 立即下载
2023云栖大会:和客户一起玩转PolarDB新特性 立即下载
2023云栖大会:PolarDB for AI 立即下载

相关镜像