【发布时间】:2011-06-10 05:03:11
【问题描述】:
我正在使用以下查询返回具有相同名字和姓氏的所有重复记录。诀窍是contact_id必须按降序排列。
查询按预期返回联系人,但速度太慢了!检查大约 30,000 条记录时大约需要 6-8 秒。
我在数据库中索引了contact_firstName、contact_lastName、contact_client_id 和contact_id。
有什么想法可以尝试加快速度吗?感谢您的帮助:)
SELECT z.contact_id, z.contact_firstName, z.contact_lastName, RIGHT(z.contact_lastName,1) AS nameNum
FROM (`contacts` x)
JOIN `contacts` z ON `x`.`contact_firstName` = `z`.`contact_firstName`
AND x.contact_lastName = z.contact_lastName
AND x.contact_client_id = ".$ID."
AND z.contact_client_id = ".$ID."
WHERE `x`.`contact_id` < `z`.`contact_id`
GROUP BY `z`.`contact_id`
【问题讨论】:
-
@djacobson:我很欣赏他们。它们可以让过滤掉什么是字段变得容易得多。
标签: mysql duplicates performance indexed