当前位置: 首页 > 网络应用技术

为什么不将零值设置为mysql?

时间:2023-03-07 01:12:43 网络应用技术

  大家好,我是卡卡

  以前,Elasticsearch系列文章提到了如何处理空价值。如果null为null,则将直接报告错误,因为当字段值为null,空数组和null值数组时,它将被视为没有值的字段。在端口中需要使用或处理空值

  大多数Elasticsearch数据来自各种数据库。在这里,仅针对MySQL,所有开源软件默认与各种空值,空数组等兼容

  如果切断根源,则可以节省很多东西。到目前为止,许多开发人员仍然对该字段具有艰难的默认值。

  来谈论为什么不建议将字段的默认值设置为将字段的默认值设置为

  这个问题的环境是:

  

  创建用户

  添加数据,总共10个数据,两个数据的名称值为null

  在本期的MySQL统计数据中,MySQL的统计总数(在“ Dead MySQL Series Ten”文章中,已经清楚地理解了计数的使用。

  然后使用此情况分析为什么丢失数据,首先查看结果

  使用计数字段名称时会发生数据丢失。显然,主密钥ID9和10的两个记录的名称值为空。

  为什么会发生这种情况?

  除了主要的密钥字段外,还将有两种情况:除了主要关键字段外:

  一个是该领域为空。执行后,它可能是零的,但必须从价值中取出,然后判断,而不是null的积累

  另一个是不是零的字段。执行时,请从记录中读取此字段

  目前,我们遇到的问题是名称字段的值具有空值,因此将采用第一种情况。

  *为什么您建议每个人都使用Count()?**

  MySQL对计数进行了特殊优化。与该领域的不同之处在于不要将所有值带出来,而是指出它绝对不是零值。

  *MySQL团队优化了Count()?**

  MySQL系列的第十八期已更新。你猜是原因吗?

  现在您应该知道,主键索引结构中的叶节点存储在行数据中,而普通索引叶节点存储了主键ID

  这绝对比普通索引的主要密钥索引小,因为对于MySQL,无论哪个索引结果相同,优化器都将主动找到最小的树以进行遍历。

  在逻辑正确性的前提下,最小化访问数据的量是数据库系统设计的常见规则之一。

  最后,为每个人留下问题,为什么InnoDB存储引擎不存储像Myisam存储那样的计数值?

  如果您不知道,可以看到上面提到的计数文章

  开发中的开发场景很少。在大多数情况下,它们是使用组完成的

  您可以看到此时数据仍然正确,并且为空值完成了空值。

  您为什么这么说,因为卡卡(Kaka)看到有人在其他平台上使用它,然后说统计数据不准确。

  此用法仍然是计数(字段)的用法。独特的本身将使零零。重物之后,它仍然需要确定名称的值在累积之前就不为null。

  所以,不要把锅扔到

  当某些值为null时,使用表达式会导致数据不一致。让我们一起看看。

  表达会导致数据丢失

  这与我们的预期结果不同,期望是返回ID2?10的数据

  当然,这个问题尚未解决,MySQL也提供了一种方法

  要解决此问题,您只能添加另一个条件即可处理现场值,并单独处理它

  一片空白

  如果列中有零值,则在使用MySQL的聚合函数(而不是0)之后,结果为null,这将在程序执行过程中导致指针异常

  创建用户订单的数量并插入4个数据,然后证明生成的问题

  聚合物功能的问题

  您可以看到,当字段为null时,聚合函数的返回值为null,而不是0,那么如何处理此问题?

  相同的MySQL还为您提供相应的功能,即Ifnull

  在此处插入图片描述

  当字段的值具有零值时,如果要执行零值查询,则必须使用isnull或ifnull匹配查询或使用为null,这不是null。

  常用的表达式不能再次使用。可以拥有工作经验。如果新移民,那将是不舒服的。

  接下来,看到一些新来者经常犯错误

  错误的

  过滤零值中存在的字段的表达,正确的用法应为null或不为null

  在此处插入图片描述

  错误两个

  仍在使用表达式,也可以使用isnull

  在此处插入图片描述

  在说了很多之后,我感到将字段设置为null的麻烦,但是幸运的是,MySQL仍然可以在使用IS null,isNull()和等方面使用该索引。

  卡卡目前的公司具有大量的字段默认值为null,因此代码存储大量的IFNULL为null,不是零和其他代码。

  一般字段值类型的默认值为0,字符串为空。不要给无效!

  死黑色mysql系列总目录

  灾难发生后,生产环境执行了DDL操作“ Dead MySQL系列14”

  谈论MySQL的锁定规则“ Dead MySQL系列15”

  为什么不让加入?

  MySQL做出了那些未知的加入“ Dead Mysql系列17”的优化

  “”

  坚持学习,写作和共享是自实践以来一直维持的信念。可以在巨大的互联网上为您提供帮助,我会单击,我将在下次看到它。

  “