sách gpt4 ai đã đi

日期时间字段上的 MySQL 索引不是 RANGE 类型,而是使用 INDEX 类型

In lại 作者:行者123 更新时间:2023-11-30 21:24:57 27 4
mua khóa gpt4 Nike

我想知道为什么这个索引没有用在 RANGE 类型中,而是用在 INDEX ở giữa:

索引:

CREATE INDEX myindex ON orders(order_date);

查询:

EXPLAIN 
SELECT order_date FROM orders
WHERE order_date BETWEEN '2020-01-01 00:00:00' AND '2020-12-31 23:59:59';

在输出中,TYPE 列设置为 INDEX。在我看来,它应该找到索引中日期大于第一条的第一条记录,然后遍历链表,但如果是这种情况,类型应该是 phạm vi, thay vì 索引.

此外,还使用 force index(report_ordini_per_utente_in_un_periodo)
hiện hữu từ 子句上,类型仍然是 chỉ số

我正在使用 MariaBD 10.1.43

1 Câu trả lời

原来是一种错误,因为我在数据库中的所有记录都在该范围内,所以它显然必须遍历整个索引,这就是为什么它标记为 TYPE BẰNG INDEX Còn hơn là RANGE。更奇怪的是,假设查询有order_date between X and Y,如果所有记录的日期都大于X,但不是所有记录的日期都小于Y,它也将其标记为INDEX Còn hơn là RANGE

关于日期时间字段上的 MySQL 索引不是 RANGE 类型,而是使用 INDEX 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59604913/

27 4 0
Bài viết được đề xuất: 相同列的 MySql Distinct
Bài viết được đề xuất: c# - 控制自定义控件的呈现
Bài viết được đề xuất: c# - 保持 LinqToSQL 与数据库同步
Bài viết được đề xuất: c - 等级与符号
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com