代码之家  ›  专栏  ›  技术社区  ›  Joe R.

CHAR(5)与INT

  •  1
  • Joe R.  · 技术社区  · 14 年前

    INFORMIX-SE 7.1版:

    1. CHAR(5)列使用5字节的存储空间,整数使用多少字节?
    2. INT列上的SELECT MAX()是否比col5 CHAR(5)上的MAX()快?
    4 回复  |  直到 14 年前
        1
  •  1
  •   Community CDub    4 年前
    • INFORMIX-SE 7.1版:

    1. CHAR(5)列使用5字节的存储空间,整数使用多少字节?
    2. INT列上的SELECT MAX()是否比col5 CHAR(5)上的MAX()快?
    1. Informix DBMS中整数为4字节。
    2. 同样,不太可能存在可测量的差异。如果列上有索引,两个操作都只需访问该索引。如果没有索引,那么这两个操作最终都会读取表(表扫描),处理5个字符而不是4个字节的代价很小。
        2
  •  4
  •   Pekka    14 年前

    CHAR(5) 将始终使用5字节的空间(自MySQL4.1以来的多字节编码中为10字节),因为每个字符可以存储255个不同的字符(或在多字节编码中甚至更多)。

    未签名的 SMALLINT (0..65535)将取2,一个未签名的 MEDIUMINT (0.... 1670万)3字节。

    底线: 对数字数据使用CHAR类型总是浪费空间。

    INT列上的唯一索引的执行速度是否比CHAR(5)快?

    很有可能是的,因为索引不需要字母数字,而且可以处理少量的数据

    极其 很可能是这样,因为要在CHAR列上运行数字函数,必须对其执行类型转换 .

    参考文献:

        3
  •  2
  •   NullUserException Mark Roddy    14 年前

    INT uses 4 bytes. 您可以存储0。。。带INT的4294967295(无符号)

    顺便说一句,我不会用 CHAR , VARCHAR ,或任何string-y类型来存储数字。你只是在自找麻烦。例如,如果使用字符串比较,则9大于10。你也会错过很多算术运算。

        4
  •  1
  •   Community CDub    8 年前

    INT. INT 速度更快!

    有关详细信息,请查看此问题的选定答案: