mysql设计表的时候字段尽量不要可为null
首先,在性能优化的时候,把null设置为not null 并不会使性能带来很大提升。并不建议把这个修改作为性能提升的首选。
当字段可以为null时,mysql会做哪些操作?
1,当字段可以为空时,首先在存储数据的时候,会多一位字节用来标志数据是否为null。
2,当timestamp类型时,数据为null可能会报错。
3,NULL值到非NULL的更新无法做到原地更新,更容易发生索引分裂,从而影响性能。所谓索引分裂,大概是说,一个数据初始的分配空间不够用,又分配了另一块空间给该数据,这样在查数据的时候,就需要多一次io,访问两个数据块才能完整的读取数据。