Mysql字段建允许空值,好么? 会不会降低速度?影响效率啊

解决方案 »

  1.   

    1.不要以为 NULL 不需要空间,其需要额外的空间,
    2.在你进行比较的时候,会带来逻辑上的浮躁。 
    3.一般教程上 都在设计表那块写着 原则上每个字段都不要为NULL 
      

  2.   


    允许空值就是在APP端编程的时候方便一些,有些值懒得写,没写也不会报错。
    但一般都建议不为NULL,因为在查询的时候,如果字段内包含NULL值,那么是使用不到索引的。
    比如
    A   B
    1   1
    2   NULL
    3   3
    B字段上有个索引,在查询select b from tbname的时候,是不会用到B的索引。
      

  3.   

    主要是对业务逻辑上有影响,另外表中出现大量的NULL值一般表示表设计不合理。
      

  4.   

    尽量使用 NOT NULL 以提高效率。
      

  5.   

    MYSQL难以优化可空列的查询,它会使索引,索引统计和值更加复杂.可空列需要更多的存储空间,还需要在MYSQL内部进行特殊处理.当可空列被索引的时候,每条记录都需要额外的一个字节,还能导致MYISAM中固定大小的索引变成可变大小的索引.可以考虑使用0,特殊值来代替但把NULL列改为NOT NULL带来的性能提示很小,除非确定它带来了问题,否则不要把它当成优先的优化措施,最重要的是使用的列的类型的适当性.