有情怀,有干货,微信搜索【荒古传说】关注这个不一样的程序员。

平时开发过程中,MySQL 字段的一般都会设置为NOT NULL,你有想过为什么吗???

原因如下:

1、空值("") 和 “NULL” 的区别:

  1. 空值是不占用空间的
  2. MySQL中的NULL其实是占用空间的

NULL columns require additional space in the row to record whether their values are NULL. For MyISAM tables, each NULL column takes one bit extra, rounded up to the nearest byte.

所谓的NULL就是什么都没有,连0都没有,0在字符串中是结束符,但是在物理内存是占空间的,等于一个字节,而NULL就是连这一个字节都没有。

2、不利于查询优化

如果查询中包含可为NULL的列,对MySQL来说更难优化,因为可为NULL的列会使索引、索引统计和值比较都更复杂。

当可为NULL的列被索引时,每个索引记录需要一个额外的字节,在MyISAM里面甚至可能导致固定大小的索引(例如只有一个整数列的索引)变成可变大小的索引。

参考资料:

  • MySQL 数据库优化之字段尽量避免NULL
  • MySQL字段属性应该尽量设置为NOT NULL

文章持续更新,可以微信搜一搜「 荒古传说 」第一时间阅读。

mysql 设置一个字段为null_MySQL中,为什么要设置NOT NULL?相关推荐

  1. mysql查询字段纯字母_解决MySQL之中一个字段中无法精准的查询多语言语言字母的问题...

    解决MySQL之中一个字段中无法精准的查询多语言语言字母的问题 解决MySQL之中一个字段中无法精准的查询多语言语言字母的问题 目录 1.使用场景 2.实现过程及展示结果 2.1.修改字段排序规则为u ...

  2. MySQL 实现一个字段赋值给另一个字段

    MySQL 实现一个字段赋值给另一个字段 1.将同一个表中的一个字段的值复制给另一个字段UPDATE t_user SET signed_time = create_time 122.将同一个表中两个 ...

  3. 增加mysql表一个字段+注释

    增加mysql表一个字段 ALTER TABLE 表名 ADD COLUMN 列名 varchar(50) DEFAULT null comment '注释' ;

  4. mysql复制一个字段值到另一个字段,MySQL怎么把表中一个字段数据复制到另外一个表的某个字段下...

    点击查看MySQL怎么把表中一个字段数据复制到另外一个表的某个字段下具体信息 答:update b set tel =(select mobile from a where a.id=b.aid) 注 ...

  5. mysql的一个字段最多能插入多少数据?我们存入text类型的值上限是多大?

    文章目录 一.前言 二.mysql的行大小限制 1.结论如下 2.行大小限制 3.页大小设置以及特性 (1)查看当前数据页大小 (2)关于数据页的解释 4.text类型和blob类型的特殊之处 5.t ...

  6. mysql 删除一个字段语句怎么写_删除的sql语句怎么写

    1. 删除一个表的sql 语句怎么写啊 使用drop语句,drop table (需要删除表的名字). drop是删除整个表,delete是删除表的内容. drop语句的作用:删除内容和定义,释放空间 ...

  7. 修改mysql表的字段名_mysql中修改表字段名/字段长度/字段类型详解

    在mysql中我们对数据表字段的修改命令只要使用alter就可以了,下面我来给大家详细介绍mysql中修改表字段名/字段长度/字段类型等等一些方法介绍,有需要了解的朋友可参考. 先来看看常用的方法 M ...

  8. MySQL给一个字段递增赋值

    https://blog.csdn.net/kriszhang/article/details/72125203 首先设置一个变量,初始值为0: set @r:=0; 1 然后更新表中对应的ID列: ...

  9. mysql 查询一个字段快还是一条记录快_mysql (优化)查询一条再筛选某个字段和直接查询该条的某个字段的效率比较...

    查询所有,10000次, $sql = "select * from mh_user where (username='333') and (password='xxx')"; 总 ...

最新文章

  1. Mybatis中连接池介绍
  2. switch字符串jdk_JDK 12 Early Access Build 12中的原始字符串文字支持
  3. 2名数学家或发现史上最快超大乘法运算法,欲破解困扰人类近半个世纪的问题...
  4. python django框架_Python Web框架【Django框架第一篇基础】
  5. vmware嵌套虚拟化对服务器的影响,VMware 虚拟机嵌套部署 KVM 虚拟机小结
  6. 从GPU到3D渲染:游戏图形渲染技巧与性能优化
  7. Centos7 设置静态IP后重启网络服务出错
  8. FAQ 工作薄及工作表
  9. EDA技术实用教程 | 复习五 | 端口模式
  10. 关于微博api返回内容不全内容
  11. java除法运算有小数_Java 整数间的除法运算如何保留所有小数位?
  12. 电商购物后台管理系统总结
  13. 【sketchup 2021】草图大师的编辑工具1【移动工具、旋转工具、缩放工具】
  14. qte5编译dub.json
  15. PS抠头发妙法(原创技巧)
  16. 计算机领域nt=p,计算机考试范题-pwerpoint操作.doc
  17. mysql 灾备方案_mysql数据库灾备方案
  18. java md5 加密工具类_JavaMD5加密工具类
  19. linux服务篇-Xinetd服务
  20. 【C语言-进阶】指针进阶(2)

热门文章

  1. android中setText不能传int值
  2. 基于JAVA+SpringBoot+Vue+Mybatis+MYSQL的微信小程序便利店购物系统
  3. 基于JAVA+SpringMVC+Mybatis+MYSQL的课堂考勤系统
  4. AESRijndael加密
  5. codeforces 85D. Sum of Medians
  6. 关于MD5对用户密码不进行明文保存的问题
  7. SDN/NFV若干问题
  8. 缓存MEMCACHE 使用原子性操作add,实现并发锁
  9. templateref html内容,angular4中的ElemenetRef和TemplateRef之间的区别
  10. 为什么php md5,为什么php md5()总是与python的不同哈希.md5()如果使用汉字?