2014-11-25 2 views
0

Есть ли способ создать составной индекс, чтобы ускорить запрос ниже?Содержит ли составной индекс следующий запрос?

DELETE n1 

    FROM 
     table n1, table n2 

    WHERE 
      n1.id < n2.id 
     AND 
      n1.col1 = n2.col1 
     AND 
      n1.col2 = n2.col2 
     AND 
      n1.col3 = n2.col3 
+0

Какой индекс вы предлагаете здесь? 'col1, col2, col3' было бы хорошим местом для начала. – tadman

+0

Почему бы просто не использовать JOIN? и да, вы должны поместить составной индекс в три столбца –

ответ

0

После тонны исследований, кажется, что этот показатель является путь -

ALTER IGNORE TABLE table ADD UNIQUE INDEX dupefilter (col1, col2, col3)

Теперь, когда исходный запрос не является необходимым. Если кто-то видит потенциальную проблему с этим, прокомментируйте это. Я удивлен, что уникальный индекс не рекомендуется чаще.

Смежные вопросы