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

mysql 索引失效

作者:狂拽今生   发布日期:2025-02-11   浏览:128

-- 示例代码:索引失效的情况

-- 假设有一个名为 `users` 的表,包含以下字段:
-- id (主键), name, age, created_at

-- 1. 使用函数导致索引失效
EXPLAIN SELECT * FROM users WHERE SUBSTRING(name, 1, 3) = 'abc';
-- 解释:在 `name` 字段上使用了 SUBSTRING 函数,MySQL 无法使用该字段上的索引,导致全表扫描。

-- 2. 使用 <> 或 != 导致索引失效
EXPLAIN SELECT * FROM users WHERE age <> 30;
-- 解释:使用 <> 或 != 操作符时,MySQL 可能无法有效地使用索引,尤其是当列上有多个值时。

-- 3. 使用 OR 语句导致索引失效
EXPLAIN SELECT * FROM users WHERE age = 30 OR name = 'John';
-- 解释:当 OR 语句中的条件涉及不同的列时,MySQL 可能无法有效地使用索引,导致全表扫描。

-- 4. 类型不匹配导致索引失效
EXPLAIN SELECT * FROM users WHERE age = '30';
-- 解释:`age` 是整数类型,但查询中使用了字符串 '30',类型不匹配导致索引失效。

-- 5. 使用 LIKE 以通配符开头导致索引失效
EXPLAIN SELECT * FROM users WHERE name LIKE '%John%';
-- 解释:LIKE 语句以通配符 % 开头,MySQL 无法使用索引进行快速查找,导致全表扫描。

以上示例展示了几种常见的 MySQL 索引失效情况。

上一篇:mysql 查询表

下一篇:mysql 替换函数

大家都在看

mysqlavg函数保留小数

mysql经纬度距离计算

存储过程mysql

mysql with语句

mysql时间加减

brew 启动mysql

unsigned在mysql中是什么意思

mysql 插入更新

mysql.user

python mysql update

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

Laravel 中文站