-- 示例代码:在 MySQL 中为包含 date 函数的日期列加索引
-- 假设有一个表 `events`,其中有一列 `event_date` 存储事件日期。
-- 我们经常需要查询某一天的事件,使用了 DATE() 函数来截取日期部分。
CREATE TABLE events (
id INT AUTO_INCREMENT PRIMARY KEY,
event_date DATETIME NOT NULL,
description TEXT
);
-- 为了优化查询性能,我们可以创建一个函数索引(在 MySQL 8.0 及以上版本支持)
-- 或者创建一个冗余列并为其加索引。
-- 方法1:创建函数索引(MySQL 8.0+)
CREATE INDEX idx_event_date ON events ((DATE(event_date)));
-- 方法2:创建冗余列并加索引
ALTER TABLE events ADD COLUMN event_date_only DATE AS (DATE(event_date)) STORED;
CREATE INDEX idx_event_date_only ON events (event_date_only);
-- 解释:
-- 方法1直接为 DATE(event_date) 创建索引,适用于 MySQL 8.0 及以上版本。
-- 方法2通过添加一个冗余列 event_date_only 来存储 DATE(event_date) 的结果,并为该列创建索引。
-- 这两种方法都可以提高涉及 DATE(event_date) 查询的性能。
上一篇:mysql 命令行登录
下一篇:mysql 时间加一天
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站