如何解决如何优化MySQL查询“来自表WHERE Date = CURDATE和ID = 1;的SELECT *”
|| 我在MySQL表table
中有以下数据:
ID
:int(11)[这是主键]
Date
:日期
然后运行MySQL查询:
SELECT * from table WHERE Date=CURDATE() and ID=1;
这需要0.6至1.2秒。
有什么方法可以优化此查询以更快地获得结果?
我的目标是找出今天是否有这张“ 1”的唱片。
解决方法
在
ID
和Date
上添加索引。
参见CREATE INDEX
手册。
,您可以在末尾添加ѭ8,因为您正在搜索主键,因此最大结果为1。
而且,如果您只想知道它是否存在,可以将*
替换为ID
以仅选择ID。
此外,如果您还没有的话,您确实需要添加索引。
,设置@cur_date = CURDATE()
...日期= @cur_date ...
然后创建日期,ID的索引(顺序很重要,它应该与您查询的顺序相匹配)。
通常,在执行查询之前先调用函数并将其存储到变量中,这样SQL可以将它们像数字而不是函数一样对待,这倾向于允许它使用更快的查询算法。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。