当前位置: 首页 > 面试题库 >

关于选择数据类型

广绪
2023-03-14
问题内容

如果在表的一列中,我希望这些值是“是”,“否”或“可选”,那么我需要使用哪种数据类型?


问题答案:

少量:

  • 占用1个字节,但是最多可以将8个BIT字段合并到SQL Server中的单个BYTE中。
  • 存储以下两个值之一:1(表示true)和0(表示false),因此该列需要为可空值,以便NULL作为您的第三个值传递

CHAR(1)

  • 需要1个字节
  • 如果不区分大小写ASCII,则为26个字符;如果不区分大小写,则为52个字符

天音

  • 需要1个字节
  • 值从零到255

表现

所有选项占用相同的空间量,从而使性能等同于JOIN / etc。

比较

BIT如果可能的值有可能改变,则不是最明智的选择。 CHAR(1)可以立即读取的IE:Y,N,O。
TINYINT对于要通过外键关联的表中的主键是一个不错的选择,并将描述性文本存储在另一列中。

结论:

CHAR(1)如果不使用外键关系,将是我的选择,TINYINT否则。
使用CHAR(1),拥有单个字符的自然主键是非常不可能的。如果您有2个以上以相同字符开头的单词,则假定基于前导字符的自然键会失败,并且如果标签需要更改,则会引起悲伤,因为该键也应该更改并永久存在(除非您懒惰并喜欢解释为什么代码没有遵循与其他html" target="_blank">代码相同的方案)。CHAR(1)还提供了TINYINT所提供的可能性的大约五分之一(假设上限为52个区分大小写的值)-人工/代理键可避免描述更改。



 类似资料:
  • 主要内容:数值类型,日期和时间类型,字符串类型,二进制类型MySQL 提供了大量的数据类型,为了优化存储和提高数据库性能,在任何情况下都应该使用最精确的数据类型。   前面主要对 MySQL 中的数据类型及其基本特性进行了描述,包括它们能够存放的值的类型和占用空间等。本节主要讨论创建数据库表时如何选择数据类型。   可以说字符串类型是通用的数据类型,任何内容都可以保存在字符串中,数字和日期都可以表示成字符串形式。   但是也不能把所有的列都定义为字符串类

  • 问题内容: 标签 帖子 我们如何能够得到一个包含价值POST_ID = 1和2 ,并在同一POST_ID? 所以结果是 剂量显示,因为标签的post_id = 4中没有值。 不显示要求 问题答案: 尝试多次: 看到这个SQLFiddle 您也可以像这样连接两个表:

  • 问题内容: 我们有疑问,根据我们在主页上显示2个列表的位置 修改日期之前的问题 问题有更大的见解和答案。并且在这两个清单中,如果问题有相同的观点或答案,则排序基于日期。 以前,我直接查询MySQL数据库并获取值,因此很容易。但是每个页面请求到达MySQL都有点昂贵,然后开始进行缓存。 我开始使用Redis。以下是我使用Redis缓存的情况 问题在第二个清单上,我必须以投票方式显示问题,而不能回答合

  • 以下代码片段输出结果是什么? var a = 1; var b = {value: 1}; var c = new Number(1); function foo(v){ v.value = "new Value"; } foo(a); foo(b); foo(c); console.log('a:',a) console.log('b:',b) console.log('c:',c

  • 问题内容: 实际上可以从网站开发中完全避免使用类。 我的问题是,与类选择器相比,数据选择器的效率如何? 一个简单的示例是比较对带有的元素与vs与的元素的查询。 该选择将检查值作为一个整体对String类应该被拆分。考虑到这一点,数据属性应该更快。 因此,为解决问题,在CSS的情况下,我们最好使用类选择器还是数据选择器?并且从javascript的角度来看,它会比?更有效。 问题答案: 我不会说这是

  • 问题内容: 如果是这样,为什么呢?我的意思是,tinyint的搜索比int更快吗? 如果是这样,那么实际的性能差异是什么? 问题答案: 是的,根据数据类型,确实会有所不同。 vs.不会在速度上产生明显的差异,但是会在数据大小上产生差异。假设是1个字节,而不是4个字节,则每行保存3个字节。一段时间后加起来。 现在,如果它反对,那么将会有些下降,因为整数值之类的排序操作比字符串值要快得多。 如果它是可