mysql小于字符串数字_REST 设计困惑?Mysql 是直接存字符串好还是数字好?

设计过些数据库, 类似于这种状态, 最早使用的是使用 int 来存储的, 因为相对于 varchar int 的效能是高的, 不过随之而来的问题是, 因此业务的问题, 会经常有查询, 但是在写 sql 的时候经常会忘记相应数字所对应的状态, 每次又要去找, 很烦, 加之又从互联网的某个角落得 知, 在 postgreSQL 中其实 int 和 varchar 的效能问题其实是没差别的(未经验证, 至少是我未验证过), 后一想就算是存储 varchar 状态最长把字符控制在十个字符内, 不会有很大的问题, 而且类似于状态这样的经常查询字段也会建立一个索引, 基本上已经可以了.

之前也听一个前辈说过, 他那有个库, 数据很多, 状态是 int 的查询速度是大于 varchar 的.

目前了, 状态字段又换成 int 型了, varchar 的便于识别的所带来的坏处就是在写 sql 语句的时候状态的条件需要多加 ' (where stat='open') , 对的 我就是这么懒.. 人都会偷懒, 而且也许会带来性能上的提升 何乐而不为了, 关于之前说的记不住状态, 有所得就有所失.

而且类似于这样的状态 如果存储的 int 型, 转换的话, 在 java 中可以定义隔枚举类作为对应的状态值, 这样程序判断会相对简单些.

关于说的数据大的问题, 如果你的表数据不会达到几百上千万的量, int varchar 的差别或许并不是很大, 当数据达到或者超出这个量的时候, 或许数据库都不一定能做到高效的操作了, 会考虑更多高效的方式, 像 nosql solr 等.

结论的话:

为了便于自己认识使用 varchar

为了高效(或者说专业设计)使用 int

如果确定用数字存储的话可以考虑用 tinyint 这个相对来说效能会高于 int 这个数值范围是小于 int 的, 不过是 postgresql 的话就不行了这数据库不支持 tinyint 类型

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值