MySQL-default设置

Posted zjffun

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL-default设置相关的知识,希望对你有一定的参考价值。

Both statements insert a value into the phone column, but the first inserts a NULL value and the second inserts an empty string. The meaning of the first can be regarded as “phone number is not known” and the meaning of the second can be regarded as “the person is known to have no phone, and thus no phone number.”
MySQL :: MySQL 8.0 Reference Manual :: B.5.4.3 Problems with NULL Values

null:未知,未设置值
empty string(‘‘):空,设置但值为空

For MyISAM tables, NULL columns require additional space in the row to record whether their values are NULL. Each NULL column takes one bit extra, rounded up to the nearest byte.
MySQL :: MySQL 5.7 Reference Manual :: C.10.4 Limits on Table Column Count and Row Size

我见网上很多博客写的是在MyISAM中null占一位,empty string(‘‘)一位都不占,我感觉有点问题(应该是创建表时设置为null的字段会多一位来存null)但使用information_schema数据库的tables表的DATA_LENGTH字段测试时发现不论插入null还是empty string(‘‘)的增量都一样。。

ps:使用select length(‘‘), length(null)查询结果确实是‘‘长度为0

mysql> select length(‘‘), length(null);
+------------+--------------+
| length(‘‘) | length(null) |
+------------+--------------+
|          0 |         NULL |
+------------+--------------+

结论:

因为null的处理费劲,且查null的时候据说不走索引,除特殊情况还是用empty string(‘‘)方便点(好像和上面没什么关系了)。




以上是关于MySQL-default设置的主要内容,如果未能解决你的问题,请参考以下文章

VSCode插件开发全攻略代码片段设置自定义欢迎页

错误代码:错误域 = NSCocoaErrorDomain 代码 = 3840“JSON 文本没有以数组或对象和允许未设置片段的选项开头。”

如何设置 vscode 的代码片段,以便在自动完成后自动触发 vscode 的智能感知?

javascript 用于在节点#nodejs #javascript内设置react app的代码片段

markdown 在Intel Nuc上设置Ubuntu Web服务器,步骤和代码片段

在具有多行标题的选项卡上设置片段