zoukankan      html  css  js  c++  java
  • varchar nvarchar 设计长度时 设计成 (2^n)-1 的好处

    这个问题想说已久就是博没共享出来

    首先提出个问题 

    CREATE TABLE `test` (
      `a` varchar(200) DEFAULT NULL,
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8

    VS

    CREATE TABLE `test` (
      `a` varchar(255) DEFAULT NULL,
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8

    是否感觉有什么异常没有的话 各位看官请往下看把

    CREATE TABLE `test` (
      `a` varchar(256) DEFAULT NULL,
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8

    这个 255 256大家有什么感想没有

    经历过一些公司以及一些项目大家是否常见到

    varchar(511)
    varchar(255)
    varchar(127)
    varchar(64)
    varchar(32)
    varchar(16)
    varchar(8)
    让你设计长度是 你是否就这样
    varchar(10)
    varchar(20)
    varchar(100)
    varchar(150)
    自然界中是十进制而计算机是二进制

     1 bytes = 8 bit ,一个字节最多可以代表的数据长度是2的8次方 11111111 在计算机中也就是-128到127

    ①因为varchar类型存储变长字段的字符类型,当存储的字符串长度小于255字节时,其需要1字节的空间,当大于255字节时,需要2字节的空间。
    ②使用2 ^ n长度是更好的磁盘或内存块对齐。对齐块更快。今天“块”的大小更大,内存和磁盘足够快,可以忽略对齐,对于非常大的块来说是非常重要的。

    因此为了更加合理的利用我们珍贵的磁盘和内存大家一定要在设计表的时候注意一些细节

    PS:细节决定成败By《魁北克大桥》
  • 相关阅读:
    Java面试题 OOAD & UML+XML+SQL+JDBC & Hibernate
    Java面试题 corejava(二)
    Java面试题 corejava(一)
    Java 笔试题(一)
    大数据离线分析平台 用户数据Etl
    Spfa【p1186】 玛丽卡
    牛客nowcoder Noip提高组第四场
    分层图【p4568】 [JLOI2011]飞行路线
    10.06 国庆节第九场模拟赛
    10.04 国庆节第七场模拟赛
  • 原文地址:https://www.cnblogs.com/codedreams/p/10900890.html
Copyright © 2011-2022 走看看