优化MySQL中的SELECT DISTINCT CONCAT查询

时间:2009-07-01 01:27:52

标签: mysql optimization

我正在运行此查询:

SELECT DISTINCT CONCAT(ALFA_CLAVE, FECHA_NACI) FROM listado GROUP BY ALFA_CLAVE HAVING count(CONCAT(ALFA_CLAVE, FECHA_NACI)) > 1

有没有办法优化它?查询在一张850,000行的桌子上花了2-3个小时。

为ALFA_CLAVE和FECHA_NACI添加索引会起作用吗?

1 个答案:

答案 0 :(得分:1)

mysql没有functional / expression索引功能,它不能在函数/表达式上放置索引。

以这种方式尝试,即稍后将它们连接起来:

select concat(x.alfa_clave, x.fecha_naci) 
from
(
    SELECT ALFA_CLAVE, FECHA_NACI 
    FROM listado 
    GROUP ALFA_CLAVE, FECHA_NACI 
    HAVING COUNT(*) > 1
) as x