SQL:存储是/否值的最佳方法?照顾大型数据库中的性能

Her*_*ntz 4 sql database performance database-design store

我有一些列,我必须存储基本上是/否值.例如,活动或非活动的用户状态.时事通讯的遗嘱状态为已故或未记录的.

好吧,我想知道(考虑有大量记录的表),如果最好的方法是将一个小的int放入char长度为1并将1设置为yes,将0设置为no.

这是正确的想法吗?或者,在使用yes,no,active,inactive,suscribed等等单词时,对数据库查询的性能没有影响.

提前致谢.

Clo*_*boy 9

在语义上,我建议您使用bit它,如果它可用.查看该列时,任何其他开发人员都可以立即确定其中存储了一个布尔值.如果您没有bit,请尝试使用tinyint.确保这1是唯一的true价值,0唯一的false价值将带来一致性.否则,你最终可能会混杂使用true/ false,yes/ no,valid/ invalid,y/ n和/或t/ f.

比较bittinyint值可能不比比较字符串慢,即使它比比较字符串慢,我也无法想象它对整体速度有显着影响.

  • "比较bit或tinyint值可能不比比较字符串慢"我是一台电脑.我说二进制.我不会说数字或字母或任何口语.我说二进制.当我比较一下时,我会看一下.当我比较"字符串"时,我必须查看代表你的数字或字母或单词的许多位.虽然我能做得非常快,但你要求我做的时间越长就越多. (3认同)