Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

mysql is null会使索引失效吗

作者:一抹淡影   发布日期:2025-12-05   浏览:60

-- 示例代码:创建一个带有索引的表

CREATE TABLE example_table (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50),
    age INT,
    INDEX idx_age (age)
);

-- 插入一些数据
INSERT INTO example_table (name, age) VALUES ('Alice', 25), ('Bob', NULL), ('Charlie', 30);

-- 查询语句1:使用 IS NULL 进行查询
SELECT * FROM example_table WHERE age IS NULL;

-- 查询语句2:使用 = NULL 进行查询(不推荐)
SELECT * FROM example_table WHERE age = NULL;

-- 解释说明:
-- 在 MySQL 中,IS NULL 和 = NULL 是不同的。= NULL 不会被优化器正确处理,因为它在 SQL 中总是返回 NULL(即未知),而不是 TRUE 或 FALSE。
-- 因此,使用 = NULL 会使索引失效,而 IS NULL 可以正常使用索引。
-- 在上面的例子中,第一个查询语句可以利用 idx_age 索引,而第二个查询语句不会利用索引。

-- 验证索引是否生效可以使用 EXPLAIN 命令
EXPLAIN SELECT * FROM example_table WHERE age IS NULL;
EXPLAIN SELECT * FROM example_table WHERE age = NULL;

上一篇:mysql数据库定时备份

下一篇:mysql if 语句

大家都在看

mysqlavg函数保留小数

mysql显示表内容

mysql经纬度距离计算

mysql 加密

存储过程mysql

mysql 1265

mysql with语句

mysql时间加减

mysql查询表名,模糊匹配

brew 启动mysql

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站