数据库允许空值(null),往往是悲剧的开始

数据库字段允许空值(null)可能导致诸多问题,如全表扫描、不符合预期的查询结果。文章通过示例展示了不等于(!=)查询在含有空值时的异常情况,强调了使用OR条件时的潜在风险,并提出了优化方案,包括使用UNION替换OR查询,以及在建表时设置默认值以避免空值陷阱。同时,推荐使用EXPLAIN工具来分析查询性能。
摘要由CSDN通过智能技术生成

数据库字段允许空值,会遇到一些问题,此处包含的一些知识点,和大家聊一聊。

数据准备:

create table user (

id int,

name varchar(20),

index(id)

)engine=innodb;

 

insert into user values(1,'shenjian');

insert into user values(2,'zhangsan');

insert into user values(3,'lisi');

 

说明:

id为索引,非唯一(non unique),允许空(null)。

 

知识点1(热身):负向查询不能命中索引,会导致全表扫描。

explain select * from user where id!=1;

索引字段id上的不等于查询,如上图所示:

(1)type=ALL,全表扫描;

(2&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值