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

mysql时间范围查询索引失效

作者:冷宸枫   发布日期:2025-11-18   浏览:28

-- 示例代码:MySQL 时间范围查询索引失效

-- 假设有一个表 `orders`,其中包含一个 `created_at` 列,类型为 DATETIME。
-- 创建索引:
CREATE INDEX idx_created_at ON orders(created_at);

-- 以下查询可能会导致索引失效:
SELECT * FROM orders WHERE DATE(created_at) = '2023-10-01';

-- 解释:在上面的查询中,使用了函数 `DATE()` 对 `created_at` 列进行处理,这会导致 MySQL 无法使用索引,
-- 因为它需要对每一行计算 `DATE(created_at)`,而不能直接使用索引。

-- 正确的做法是避免在索引列上使用函数,改为直接比较时间范围:
SELECT * FROM orders 
WHERE created_at >= '2023-10-01 00:00:00' 
  AND created_at < '2023-10-02 00:00:00';

-- 这样可以确保 MySQL 使用索引进行查询优化。

上一篇:mysql 插入更新

下一篇:mysql 备份恢复

大家都在看

mysqlavg函数保留小数

mysql显示表内容

mysql经纬度距离计算

mysql 加密

存储过程mysql

mysql 1265

mysql with语句

mysql时间加减

mysql查询表名,模糊匹配

brew 启动mysql

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

Laravel 中文站