MySQL null值存储和null性能影响
发表于:2025-02-22 作者:千家信息网编辑
千家信息网最后更新 2025年02月22日,这篇文章主要介绍"MySQL null值存储和null性能影响",在日常操作中,相信很多人在MySQL null值存储和null性能影响问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希
千家信息网最后更新 2025年02月22日MySQL null值存储和null性能影响
这篇文章主要介绍"MySQL null值存储和null性能影响",在日常操作中,相信很多人在MySQL null值存储和null性能影响问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"MySQL null值存储和null性能影响"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
MySQL null值的存储
mysql> create table mytest(t1 varchar(10),t2 varchar(10),t3 varchar(10) ,t4 varchar(10))engine=innodb charset = latin1 row_format=compact;Query OK, 0 rows affected (0.08 sec)mysql> insert into mytest values('a','bb','bb','ccc');Query OK, 1 row affected (0.02 sec)mysql> insert into mytest values('a','ee','ee','fff');Query OK, 1 row affected (0.01 sec)mysql> insert into mytest values('a',NULL,NULL,'fff');Query OK, 1 row affected (0.00 sec)
测试数据准备完之后,执行shell命令:
/usr/local/mysql/test# hexdump -C -v mytest.ibd > /tmp/mytest.txt0000c070 73 75 70 72 65 6d 75 6d 03 02 02 01 00 00 00 10 |supremum........| ----------->一行,16字节0000c080 00 25 00 00 00 03 b9 00 00 00 00 02 49 01 82 00 |.%..........I...|0000c090 00 01 4a 01 10 61 62 62 62 62 63 63 63 03 02 02 |..J..abbbbccc...|0000c0a0 01 00 00 00 18 00 23 00 00 00 03 b9 01 00 00 00 |......#.........|0000c0b0 02 49 02 83 00 00 01 4b 01 10 61 65 65 65 65 66 |.I.....K..aeeeef|0000c0c0 66 66 03 01 06 00 00 20 ff a6 00 00 00 03 b9 02 |ff..... ........|0000c0d0 00 00 00 02 49 03 84 00 00 01 4c 01 10 61 66 66 |....I.....L..aff|0000c0e0 66 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |f...............|解释:第一行数据:03 02 02 01 /*变长字段*/ ---- 表中4个字段类型为varchar,并且没有NULL数据,而且每个字段君小于255。00 /*NULL标志位,第一行没有null的数据*/00 00 10 00 25 /*记录头信息,固定5个字节*/00 00 00 03 b9 00 /*RowID,固定6个字节,表没有主键*/00 00 00 02 49 01 /*事务ID,固定6个字节*/82 00 00 01 4a 01 10 /*回滚指针,固定7个字节*/61 62 62 62 62 63 63 63 /*列的数据*/第二行数据和第一行数据一样(颜色匹配)。第三行数据(有NULL值)和第一行的解释的颜色对应起来比较差别:03 02 02 01 VS 03 01 ----------当值为NULL时,变长字段列表不会占用存储空间。61 62 62 62 62 63 63 63 VS 61 66 66 66 --------- NULL值没有存储,不占空间结论:当值为NULL时,变长字段列表不会占用存储空间。NULL值没有存储,不占空间,但是需要一个标志位(一行一个)。结论:列数据信息里表明了 NULL数据和''数据都不占用任何空间,对于变长字段列表的信息,和一对比得出:''数据虽然不需要占用任何存储空间,但是在变长字段列表里面还是需要占用一个字节<毕竟还是一个''值>,NULL值不需要占用",只是NULL会有额外的一个标志位,所以能有个优化的说法:"数据库表中能设置NOT NULL的就尽量设置为NOT NULL,除非确实需要NULL值得。"
2. MySQL null性能的影响
(1). B树索引时不会存储NULL值的,所以如果索引的字段可以为NULL,索引的效率会下降很多。
(2). 对空值的判断或者滤出处理,在业务上容易出现混乱。
到此,关于"MySQL null值存储和null性能影响"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
数据
存储
字段
一行
字节
空间
性能
影响
学习
信息
标志
索引
更多
结论
颜色
帮助
当值
解释
实用
混乱
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
同济大学网络安全考研
java udp服务器
软件开发收入入什么科目
互联网科技创始人
wps列数据重复输入数据库
浙江备案服务器云服务器
荣威rx5显示器服务器异常
江苏吴江网络安全
济南大学的网络安全专业
浅述网络安全应急响应系统
数据库入门书籍pdf分享
已有数据库创建表
小蚁科技全球互联网大会
软件开发需要的步骤
计算机软件开发及技术服务
网络安全中无限循环的例子
网络安全的主要目的网络数据
研发配方数据库
免费领取数据库
dss4004服务器默认密码
邹平生产管理软件开发公司
电力网络安全检测装置操作系统
徐州地铁风险数据库
梦幻服务器人数
交易所软件开发 深圳
数据库avg函数内容
数据库系统概论专升本电子书
国电通网络技术有限公司招聘
深圳电话软件开发具体地址
邹平设备软件开发