【发布时间】:2016-12-16 04:53:50
【问题描述】:
我对“IS NULL”MySQL 检查产生了疑问。我有这两个查询。第一个运行大约 300 秒。第二个运行不到 1 秒!
慢查询:
SELECT count(distinct(u.id))
FROM ips_usuario AS u
JOIN ips_fatura AS f
ON ((u.id = f.ips_usuario_id) OR
(u.ips_usuario_id_titular IS NOT NULL AND
u.ips_usuario_id_titular = f.ips_usuario_id));
快速查询:
SELECT count(distinct(u.id))
FROM ips_usuario AS u
JOIN ips_fatura AS f
ON ((u.id = f.ips_usuario_id) OR
(u.ips_usuario_id_titular = f.ips_usuario_id));
所有连接条件都使用外键索引列。 ips_usuario 表有大约 20.000 条记录,ips_fatura 表有大约 500.000 条记录。
【问题讨论】:
-
这真是奇怪的结果,你确定不是页面缓存的原因吗?
标签: mysql sql database relational-database database-tuning