我正在使用 MySQL 表。
样品表EMP
(primary_key
上(EID, DOJ)
):
姓名 | 开斋节 | 部门 | 萨尔瓦多 | 司法部 (YYYY-MM-DD) |
---|---|---|---|---|
一种 | 6 | ee | 2000 | 2021-03-01 |
乙 | 5 | 我 | 2020 | 2021-04-30 |
C | 3 | 它 | 2000 | 2020-12-27 |
D | 4 | 简历 | 2020 | 2020-10-31 |
乙 | 1 | 它 | 2000 | 2021-01-01 |
F | 2 | 它 | 空值 | 2021-02-28 |
G | 7 | ee | 空值 | 2020-11-20 |
我有一项工作可以将数据删除并插入到类似结构的表中。
该过程需要删除非月度数据。也就是说,它将删除带有EID
6, 3, 1, 7
: 这些行DOJ
不是month-end 的行。
我提出的查询:
-- DOJ is of type DATE
DELETE FROM EMP WHERE LAST_DAY(DOJ) <> DOJ ;
它按预期工作。但是,因为有大量数据(约 500 万),所以速度很慢。
我知道由于功能的原因,LAST_DAY()
我正在失去index
. DOJ
您能否建议我如何改进查询?