首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么MySQL不建议使用NULL作为默认

今天来分享一道美团高频面试题,5 分钟搞懂“为什么 MySQL 不建议使用 NULL 作为默认?”。...对于这个问题,通常能听到的答案是使用了NULL将会使索引失效,但是如果实际测试过一下,你就知道IS NULL会使用索引,所以上述说法有漏洞。...着急的人拉到最下边看结论 前言 NULL是一种对的特殊约束,我们创建一个新时,如果没有明确的使用关键字not null声明该数据,MySQL会默认的为我们添加上NULL约束。...例如: 对含有NULL进行统计计算,eg. count(),max(),min(),结果并不符合我们的期望. 干扰排序,分组,去重结果....(就像额外的标志位一样) 根据以上缺点,我们并不推荐在中设置NULL作为的默认,你可以使用NOT NULL消除默认设置,使用0或者''空字符串来代替NULL。

39420

为什么MySQL不建议使用NULL作为默认

译者:guangsu. blog.csdn.net/qq_30549099/article/details/107395521 通常能听到的答案是使用了NULL将会使索引失效,但是如果实际测试过一下...NULL是一种对的特殊约束,我们创建一个新时,如果没有明确的使用关键字not null声明该数据,Mysql会默认的为我们添加上NULL约束....有些开发人员在创建数据表时,由于懒惰直接使用Mysql的默认推荐设置.(即允许字段使用NULL).而这一陋习很容易在使用NULL的场景中得出不确定的查询结果以及引起数据库性能的下降....使用NULL容易引发不受控制的事情发生,有时候还会严重托慢系统的性能....根据以上缺点,我们并不推荐在中设置NULL作为的默认,你可以使用NOT NULL消除默认设置,使用0或者''空字符串来代替NULL.

4.7K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    如何使用python连接MySQL表的

    使用 MySQL 表时,通常需要将多个组合成一个字符串以进行报告和分析。Python是一种高级编程语言,提供了多个库,可以连接到MySQL数据库和执行SQL查询。...在本文中,我们将深入探讨使用 Python 和 PyMySQL 库连接 MySQL 表的的过程。...提供了有关如何连接到MySQL数据库,执行SQL查询,连接以及最终使用Python打印结果的分步指南。...此技术对于需要使用 MySQL 数据库的数据分析师和开发人员等个人特别有用,他们需要将多个合并到一个字符串中。...结论 总之,我们已经学会了如何使用Python连接MySQL表的,这对于任何使用关系数据库的人来说都是一项宝贵的技能。

    23130

    B+树索引使用(7)匹配前缀,匹配范围(十九)

    B+树索引使用(6)最左原则 --mysql从入门到精通(十八) 匹配前缀 innoDB给其他添加二级索引,会按给他排序,不管是页之间的双向链表排序,还是页内数据槽点的单向列表排序,都是按排的...所以,这时候会使用索引查询的,但重点需要注意,注意,注意(重要的事要说三遍):如果对多个进行范围查询,只有索引最左边的那个查询时候会使用到b+树的索引进行查询。...:1)name肯定使用b+树的二级索引先查询到叶子节点的加主键,再聚簇索引回表操作返回聚簇索引叶子节点的全部数据。...2)因为name相同的情况下,birthday会触发索引查询,先在b+树叶子节点找到>’1990-01-01’的和主键,在通过主键回表查询全部数据3)因为phone使用索引查询的前提是birthday...相同,而前面的是不同的birthday,索引phone不能使用索引查询。

    99220

    ggplot2 图形排版:patchwork 包复杂排版

    安装和加载包 install.packages("ggplot2") # 安装包 install.packages("patchwork") # 安装包 library(ggplot2) # 加载包 library...绘制示例图形 绘制四个 ggplot2 示例图形用于演示排版。...使用 tag_levels 参数表示添加图形的标签,可以指定水平为 a、A、1、i、I 等,分别表示小写字母、大写字母、数字、小写罗马数字、大写罗马数字等。...p1 + p2 + p3 + p4 + plot_layout(ncol = 2, widths = c(1, 2)) 如上所示,图形设置为两,默认按行填充,两之间相对宽度比为 1:2。...除了设置排版布局外,还可以使用 guides 参数来设置图形的图例。 在4个示例数据集中,图3是有图例的,那就用图3来演示图例的设置。

    5.6K60

    R for data science (第一章)①Chapter1 使用ggplot2进行数据可视化

    mpg数据框 您可以使用ggplot2(又名ggplot2 :: mpg)中的mpg数据框测试您的答案。 数据框是变量()和观察(行)的矩形集合。...2.运行dim(mpg),发现mpg有234行,14。 3.使用?drv,提示我们drv变量是汽车的驱动属性,f =前轮驱动,r =后轮驱动。...ggplot2将自动为变量的每个唯一分配唯一级别(这里是一种独特的颜色),这个过程称为缩放。 ggplot2还将添加一个图例,说明哪些级别对应于哪些。 颜色显示许多不寻常的点是双座汽车。...绘制美学图后,ggplot2会处理其余部分。它选择了一个合理的尺度来与美学一起使用,它构建了一个解释水平和价值之间映射的图例。...对于x和y美学,ggplot2不会创建图例,但会创建带有刻度线和标签的轴线。轴线充当传奇;它解释了位置和之间的映射。 您还可以手动设置geom的aesthetic属性。

    2.8K20

    ggplot2作图共享图例方法一:ggpubr包的ggarrange()函数以及调整图例的布局

    使用ggplot2作图的时候如果多个图拼接到一起,图例互相之间有一样的时候,比如如下的情况(我们用R语言内置的鸢尾花的数据集做三个散点图) ?...这里拼图使用的函数是ggpubr这个包里的ggarrange()函数,这个函数里有一个参数是common.legend,默认好像是FALSE,我们直接设置成TRUE就好了,代码如下 ggarrange(...image.png 图例放到顶部,默认的布局是3行3,如果要改成1行6呢?ggplot2里应该有对应的参数可以修改吧?...但是目前还不知道如何使用ggplot2自带的函数来操作,查资料的时候发现了一个R包lemon里有一个reposition_legend()函数 参考资料的链接是 https://cran.r-project.org...如果将ggplot2图例设置为顶部,默认结果如下 p4<-ggplot(df,aes(x=V1,y=V2))+ geom_point(aes(color=V6))+ theme_bw()+

    4.7K51

    如何通过R语言制作BBC风格的精美图片

    作为参考,c(0,0)在左下方,c(1,0)在右下方,c(0,1)在左上方,依此类推。 找到最佳的位置可能会涉及一些反复试验。要检查图例在最终绘图中出现的确切位置,必须查看保存的文件。...,使用legend.margin为图例设置负的左边距会更容易。...可以指定您的图例作为guide的参数的行数。...将左对齐标签添加到条形图 如果您想为条形图添加左对齐标签,只需根据数据设置x参数,而是直接使用数字指定y参数。y的确切将取决于数据范围。...最好始终在较小的倍数上使用相同的y轴比例,以避免产生误导,但有时您可能需要为每个倍数分别设置这些,我们可以通过添加参数scales =“ free”来实现。

    13.1K10

    相关矩阵可视化-神颜R包!

    ggcorr函数主要用于绘制相关矩阵图,它的主要依赖包是ggplot2。它使用ggplot2包中的“grammar of graphics”来实现可视化,其结果在图形上接近corrplot函数的结果。...)##依赖包为ggplot2 ggcorr的使用 01 函数介绍 ggcorr( data,##包含连续数据的数据框或矩阵 method = c("pairwise", "pearson")...#3B9AB2",##低相关系数颜色 mid = "#EEEEEE",##中相关系数颜色 high = "#F21A00",##高相关系数颜色 midpoint = 0,##相关系数连续标度的中点...,默认在下 legend.size = 9,##图例标题和标签的大小 ... ) 02 绘图实例 使用自带的mtcars数据作为样本 ##获取mtcars数据## data=mtcars ##查看数据格式...## head(data) 首先使用ggcorr函数对每一之间绘制相关性图 ggcorr(data) ##在这里我没有定义第二个参数,函数默认使用pearson计算 默认情况下,出图的色标是渐变色,

    1.5K30

    R语言之可视化(25)绘制相关图(ggcorr包)

    (2)这里出现了警告,原因是非数字的是不能狗计算相关性的。因此它做相关性绘图时自动排除了非数字:‘name’ 相关方法 ggcorr支持cor函数提供的所有相关方法。...在相关矩阵中需要考虑的第一个设置是选择要使用的观测。...对色阶的进一步控制包括name参数(用于设置其标题),legend.size参数(用于设置图例文本的大小)和legend.position参数(用于控制图例的显示位置)。...特别是,将中点设置为NULL将自动选择中值相关系数作为中点,并将向用户显示该: ggcorr(nba[, 2:15], midpoint = NULL) 控制色标颜色的最后一个选项是通过palette...控制内部 由于ggcorr生成ggplot2对象,因此理解对象是如何构造的以便从中获取更具体的图可能很有用。

    7.7K31
    领券