首页 >

mysql查询返回字段,Mysql的字段设置为null有什么优点呢 – 数据库 – 前端,mysql中主机是什么意思

mysql 服务启动 1067,mysql强制类型转换,mysql激活码5.7,mysql 读出最新的数据,django mysql 时间,mysql中主机是什么意思mysql查询返回字段,Mysql的字段设置为null有什么优点呢 - 数据库 - 前端,mysql中主机是什么意思

Mysql的字段设置为null有什么优点呢?

问题结论

网上随便找了找,没有发现什么优点,缺点倒是一大堆。在实践过程中,默认为null最大的优点应该算是方便吧,一些非核心字段默认为空,前端用的时候判断为null时不展示,或者为null时将其设置为默认的字段值。

2. 简述Mysql的字段设置为null的缺点

2.1 查询条件中有null列需要格外注意,容易出错。

mysql中,任何值和null的比较,都返回null,而不是true或者false。

包括null=null结果都是null,不是true。

所以一旦在查询条件使用了null,而不是使用is null或者is not null将出现错误。不会返回任何值。由于mysql中,null值和任何值的比较,都会返回null,导致条件中有null的时候,返回结果和想想中的可能就不一样了。

2.2 部分函数入参有null的时候,返回值是null。

contact()方法,如果入参有null,返回是null。

2.3 Null列需要更多的存储空间:需要一个额外字节作为判断是否为NULL的标志位。

table1和table3是一模一样的,唯一不同的就是user_name字段,table1是not null,而table3的user_name没有not null的约束。

2.4 Explain输出的key_len的计算规则和三个因素有关:数据类型、字符编码、是否为 NULL。

Utf8mb4编码是4字节,utf8是3字节

not null的字段

key_len=索引字段占用的字节数+2字节可变长字段长度(定长类型不需要)

如编码集=utf8mb6的varchar(20),ken_len=82

62=20*4 +2

允许为null字段key_len=索引字段占用的字节数+2字节可变长字段长度(定长类型不需要)+1(存储是否为null的标识)

如编码集=utf8mb6的varchar(20),ken_len=83

83=20*4+2+1

所以说索引字段最好不要为NULL,因为NULL会使索引、索引统计和值更加复杂,并且需要额外一个字节的存储空间。

作者:夕阳雨晴,欢迎关注偶的头条号:偶尔美文,主流Java,为你讲述不一样的码农生活。

mysql 服务启动 1067,mysql强制类型转换,mysql激活码5.7,mysql 读出最新的数据,django mysql 时间,mysql中主机是什么意思mysql查询返回字段,Mysql的字段设置为null有什么优点呢 - 数据库 - 前端,mysql中主机是什么意思


mysql查询返回字段,Mysql的字段设置为null有什么优点呢 - 数据库 - 前端,mysql中主机是什么意思
  • mysql查询数据表的记录 |mac终端启动mysql
  • mysql查询数据表的记录 |mac终端启动mysql | mysql查询数据表的记录 |mac终端启动mysql ...

    mysql查询返回字段,Mysql的字段设置为null有什么优点呢 - 数据库 - 前端,mysql中主机是什么意思
  • mysql右连接查询结果,mysql数据库最大连接数可以设置为多少 - 数据库 - 前端,mysql cluster方案
  • mysql右连接查询结果,mysql数据库最大连接数可以设置为多少 - 数据库 - 前端,mysql cluster方案 | mysql右连接查询结果,mysql数据库最大连接数可以设置为多少 - 数据库 - 前端,mysql cluster方案 ...

    mysql查询返回字段,Mysql的字段设置为null有什么优点呢 - 数据库 - 前端,mysql中主机是什么意思
  • 在sqlserver2000中如何导出数据 - 数据库 - 前端|
  • 在sqlserver2000中如何导出数据 - 数据库 - 前端| | 在sqlserver2000中如何导出数据 - 数据库 - 前端| ...