首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何优化MySQL查询‘SELECT* from table WHERE Date=CURDATE() and ID=1;’

如何优化MySQL查询‘SELECT* from table WHERE Date=CURDATE() and ID=1;’
EN

Stack Overflow用户
提问于 2011-05-26 17:15:02
回答 3查看 2.3K关注 0票数 2

我在MySQL表table中有以下数据

ID:int(11)这是主键

Date:日期

然后我运行MySQL查询:

代码语言:javascript
复制
SELECT * from table WHERE Date=CURDATE() and ID=1;

这需要0.6到1.2秒。

有没有办法优化这个查询以更快地获得结果?

我的目标是看看我是否已经有了这个ID的今天的记录。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-05-26 17:18:48

IDDate上添加索引。

参见CREATE INDEX manual

票数 3
EN

Stack Overflow用户

发布于 2011-05-26 17:37:39

您可以在末尾添加一个limit 1,因为您正在搜索主键,因此最大结果数为1。

如果你只想知道它是否存在,你可以用ID替换*,只选择ID。

此外,如果您还没有添加索引,那么您确实需要添加索引。

票数 1
EN

Stack Overflow用户

发布于 2011-06-21 08:15:26

设置@cur_date =曲线()

...WHERE日期= @cur_date ...

然后创建一个Date,ID索引(顺序很重要,它应该与您查询的顺序相匹配)。

通常,在执行查询之前调用函数并将它们存储到变量中会让SQL将它们视为数字而不是函数,这往往会允许它使用更快的查询算法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6136238

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档