开发者社区> 问答> 正文

MySQL有限个数的数据用tinyint存和varchar存哪种更好些?

tinyint服务器判断数字后显示对应的内容
varchar就直接存要显示内容

如存XXX的分类
如存男/女

展开
收起
落地花开啦 2016-06-16 15:56:10 3433 0
2 条回答
写回答
取消 提交回答
  • 其实可以根据需要在可读性跟高性能(其实微乎其微)做选择,可读性自然是用varchar更好。别人一看你的数据库内容就知道意思了。用tinyint貌似节省存储空间节省内存,其实我个人觉得这点性能的提升压根就不是数据库优化的重点。我肯定是优先选可读性。

    2019-07-17 19:41:10
    赞同 展开评论 打赏
  • 喜欢技术,喜欢努力的人

    按照“规矩”的话数据库设计是应该要符合三个范式的,就是要新建一张专门的表用来存放“类别”。不过实际情况中如果“类别基本没有变动”的话,直接存“要显示的内容”会好一些,这样取数据的时候不需要再查询另一张表,减少一次查询。当然,缺点就是占用的空间大了,但拿空间来换时间是明智的。

    就PHP来说,存在数据库中的是数字,取出数字的时候通过一个数组来获取“类别”的名称,也是一种不错的做法。

    另外,类别的个数只有少数几个的情况如“男、女”时,直接约定用1表示男,用0表示女也是常见的做法,不过记得给字段加上注释/描述。

    最后,提个小细节,长度固定的字符串用char存,相对用varchar存,在读取方面会快些.

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

相关电子书

更多
One Box: 解读事务与分析一体化数据库 HybridDB for MySQL 立即下载
One Box:解读事务与分析一体化数据库HybridDB for MySQL 立即下载
如何支撑HTAP场景-HybridDB for MySQL系统架构和技术演进 立即下载

相关镜像