- 您好,我正在寻找从 SQL 获取最新日期的最佳方法,而不是在 SQL 中使用 max(date)。
SELECT max(CreatedDate) as createdDate,max(LastModifiedDate) as modifiedDate from user.order;
需要解决方案的建议。
感谢您的帮助,
SELECT max(CreatedDate) as createdDate,max(LastModifiedDate) as modifiedDate from user.order;
需要解决方案的建议。
感谢您的帮助,
SELECT max(CreatedDate) as createdDate,max(LastModifiedDate) as modifiedDate
from user.order;
连同这两个索引:
INDEX(CreatedDate)
INDEX(LastModifiedDate)
会非常快。 MySQL 的优化器足够聪明,可以对每个索引进行一次简单的探测。 EXPLAIN
会说“选择优化掉的表”。我认为这意味着它在决定如何执行查询的准备步骤中获得了所需的所有数据。
这是 MySQL 使用多个索引的极少数情况之一。而且它非常有效。
(在冷系统上,对一个 3M 行的表进行等效查询需要 2ms。此外,`SHOW SESSION STATUS LIKE 'Handler%' 确认只有 2 行被触及。)
,您有一个简单的查询,但没有更好的解决方案。 如果您的查询时间过长,则意味着表中有大量数据。 您可以为您的表使用索引。
索引
索引用于快速查找具有特定列值的行。如果没有索引,MySQL 必须从第一行开始,然后通读整个表以查找相关行。桌子越大,成本就越高。
CREATE INDEX YourIndex ON YourTable(column1[,column2,...]);