mysql - 我在 MySQL 上执行的查询需要超过 51 小时才能完成

标签 mysql database-performance query-performance

查询的结构如下:

SELECT DISTINCT field from table where (param1 IS NULL OR param1=CURDATE()) and (param2 IS NULL or param2=CURDATE())

参数 1 或参数 2 上没有索引。我们有大量数据,我希望有一个 cron 作业运行一个每天运行此查询的脚本。

建议?我应该以某种方式将其分成多个较小的查询吗?

编辑:我预计大约有 1000 万个结果。

最佳答案

添加此索引可能会有所帮助:

INDEX(param1, param2, field)

(这将有助于了解表的大小、架构等)

关于mysql - 我在 MySQL 上执行的查询需要超过 51 小时才能完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49198129/

相关文章:

MYSQL SUM 与内部选择返回最大日期

javascript - API 代码未运行正确的查询

performance - MongoDB 索引定义策略

mysql - 如果电子邮件地址是我网页的登录名——我应该如何设计它背后的非常简单的数据库?

MySQL基于ID更新慢(15万条记录)

php - 向 MySQL 数据库提交 HTML 选择/下拉表单

c# - .NET 应用程序使用 PHP/MYSQL 进行身份验证?

java - Mysql和Java搜索匹配多列中的多个值

mysql - 执行时间过多也会影响数据库性能

sql-server - SQL Server非聚集索引永远不会出现在执行计划中