当前位置: 首页 > news >正文

九江茶叶网站建设什么网站可以分享wordpress

九江茶叶网站建设,什么网站可以分享wordpress,口岸地区网站建设内容,数据服务网站开发在Mysql中很多表都包含可为NULL(空值)的列#xff0c;即使应用程序并不需要保存NULL也是如此#xff0c;这是因为可为NULL是列的默认属性。但我们常在一些Mysql性能优化的书或者一些博客中看到观点#xff1a;在数据列中#xff0c;尽量不要用NULL 值#xff0c;使用0即使应用程序并不需要保存NULL也是如此这是因为可为NULL是列的默认属性。但我们常在一些Mysql性能优化的书或者一些博客中看到观点在数据列中尽量不要用NULL 值使用0-1或者其他特殊标识替换NULL值除非真的需要存储NULL值那到底是为什么如果替换了会有什么好处同时又有什么问题呢那么就看下面(1)如果查询中包含可为NULL的列对Mysql来说更难优化因为可为NULL的列使得索引索引统计和值比较都更复杂。(2)含NULL复合索引无效.(3)可为NULL的列会使用更多的存储空间在Mysql中也需要特殊处理。(4)当可为NULL的列被索引时每个索引记录需要一个额外的字节在MyISAM里甚至还可能导致固定大小的索引(例如只有一个整数列的索引)变成可变大小的索引。理由佐证理由1不需要佐证首先新建环境, sql语句如下create table nulltesttable(id int primary key,name_not_null varchar(10) not null,name_null varchar(10)) ENGINEInnoDB DEFAULT CHARSETutf8 AUTO_INCREMENT1;alter table nulltesttable add index idx_nulltesttable_name_not_null(name_not_null);alter table nulltesttable add index idx_nulltesttable_name_null(name_null);explain select * from nulltesttable where name_not_nullname; // explain1explain select * from nulltesttable where name_nullname; // explain2从sql 执行可以看出, explain1中 key_len 32, explain2中 key_len 33explain1的32 由来: 10(字段长度) * 3(utf8字符编码占用长度) 2(varchar标识为变长占用长度)explain2的32 由来: 10(字段长度) * 3(utf8字符编码占用长度) 2(varchar标识为变长占用长度) 1(null标识位占用长度)两个字符串拼接, 如果包含null值, 则返回结果为null.insert into nulltesttable(id,name_not_null,name_null) values(1,one,null);insert into nulltesttable(id,name_not_null,name_null) values(2,two,three);select concat(name_not_null,name_null) from nulltesttable where id 1; -- out: nullselect concat(name_not_null,name_null) from nulltesttable where id 2; -- out: twothree如果字段允许null值, 且这个字段被索引. 如下的查询可能会返回不正确的结果select * from nulltesttable where name_null three -- out: nullselect count(name_null) from nulltesttable -- out: 1通常把可为NULL的列改为NOT NULL 带来的性能提升比较小所以(调优时)没有必要首先在现有schema中查找并修改掉这种情况除非确定这会导致问题。但是如果计划在列上建索引就应该尽量避免设计成可为NULL的列。当确实需要标识未知值时也不要害怕使用NULL。在一些场景中使用NULL可能会比某个神奇常数更好。从特定类型的值域中选择一个不可能的值例如用-1代表一个未知数可能导致代码复杂的多并容易引入BUG还可能让事情变得一团糟(注Mysql会在索引中存储NULL值Oracle不会)。当然也有例外InnoDB使用单独的位(bit)来存储NULL值所以对于稀疏数据(很多值位NULL只有少数行的列有非NULL值)由很好的空间效率这一点不适用于MyISAM。所以任何的设计和考虑请注意关注实际需求到此这篇关于浅谈为什么Mysql数据库尽量避免NULL的文章就介绍到这了,更多相关Mysql避免NULL内容请搜索站圈网以前的文章或继续浏览下面的相关文章希望大家以后多多支持站圈网
http://www.yutouwan.com/news/277214/

相关文章:

  • 做h5页面的网站哪个好学生网页制作教程
  • 免费代刷网站推广冻品网站的建设背景
  • 企业三合一建站公司怎么找大连做网站的企业
  • 有哪些网站可以免费做推广的彩票网站模版
  • 网站禁止右键网站首页设计
  • 成都企业建网站设计软件需要多少钱
  • 网站建设细化流程网站备案能查到什么东西
  • 做h5的网站的区别黑龙江 俄语网站制作
  • 个人网站如何做淘客网站做促销的网站
  • 企业网站都没的百度快照咋办破解wordpress登录
  • 阿里巴巴做特卖的网站wordpress首页链接
  • 什么平台可以做网站推广wordpress本地怎么搬家
  • 如何申请域名建立网站网站建设及推广销售话术
  • 电子商务网站网站建设wordpress 主题插件
  • 沂源网站开发论坛网站怎么做
  • 毕业设计网站设计说明书注册网站网
  • 描述网站建设规范方法网站建设套餐内容
  • 网站做301根目录在哪里wordpress怎么保持缩略图尺寸不变
  • 个人 网站备案微信公众号移动网站开发
  • 可做外链的视频网站广州抖音推广
  • 建设厅电工证查询网站天猫建设网站的意义
  • 品牌宣传型企业网站长沙装修
  • 云电脑注册网站首页wordpress 注册邀请码
  • 苏州建设公司网站唐山建设公司网站
  • 焦作网站建设服务爱妮微如何做网站链接的网址
  • 通达oa 做网站深圳市大鹏建设局网站
  • 做网站学哪些语言给别人做网站用做假酒验证
  • 提高网站的访问速度网站怎么做付费项目
  • 网站技术建设方案高邮城乡建设局 网站
  • 哪些网站是单页应用怎样建微信公众号