我正在使用以下查詢來返回具有相同姓氏和名字的所有重複記錄。訣竅是contact_id必須按降序排列。加速MySQL加入以檢查重複項
查詢按預期返回聯繫人,但它只是如此慢!檢查大約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`
的反引號! *我的眼睛!* – 2011-06-09 21:07:11
@djacobson:我感謝他們。他們可以更容易地篩選出什麼是領域。 – 2011-06-09 21:10:49
收到答案在這裏:http://stackoverflow.com/questions/11336246/mysql-min-group-by-on-large-tables-8000-rows – 2012-07-05 16:01:56