当天查询的日期时间列的最佳索引

yln*_*nor 7 mysql indexing datetime date

我有下表,大约有 4 亿行。我必须SELECT对该表执行查询,通常涉及列WHERE上的子句Date_create

关键是我的大多数查询都是全天进行的(不考虑小时和秒)

+----------------+--------------+------+-----+---------+-------+
| Field          | Type         | Null | Key | Default | Extra |
+----------------+--------------+------+-----+---------+-------+
| ID_num         | bigint(45)   | NO   | PRI | NULL    |       |
| Content        | varchar(250) | YES  |     | NULL    |       |
| User_ID        | bigint(24)   | NO   | MUL | NULL    |       |
| Location       | varchar(70)  | YES  |     | NULL    |       |
| Date_create    | datetime     | NO   |     | NULL    |       |
+----------------+--------------+------+-----+---------+-------+
Run Code Online (Sandbox Code Playgroud)

在以下方面的性能是否会显着提高:

  1. 创建一个类型Day_createDATE(不是 DATETIME)的新列,并在此列上建立索引。

相对于:

  1. Date_create在类型为 的列上有索引DATETIME

小智 2

Date_create只要您采用此处给出的建议并以最佳方式查询字段(不使用该函数),您就可以建立一个效果良好的索引DATE()

这样,您就可以获得两全其美的效果:快速SELECT查询,并且不需要额外列的额外存储。