Задавайте вопросы, мы ответим
Вы не зашли.
Страниц: 1
Доброго времени суток, уважаемые!
Есть табличка на 8 млн записей
Неактивен
Запрос очень тяжелый, надо его упрощать. Для != индекс не используется, но это условие лишее, так как v1.timestamp < v2.timestamp. Если SUBTIME заменить на его результат, посчитанный зарание, то есть шанс использовать индекс по v2.date,v2.timestamp, а для JOIN - индекс (v1.cookie2, v1.end_page_id)
Неактивен
rgbeast написал:
Запрос очень тяжелый, надо его упрощать. Для != индекс не используется, но это условие лишее, так как v1.timestamp < v2.timestamp. Если SUBTIME заменить на его результат, посчитанный зарание, то есть шанс использовать индекс по v2.date,v2.timestamp, а для JOIN - индекс (v1.cookie2, v1.end_page_id)
Пасиб попробую. SUBTIME вычисляется от каждой строки, но возможно это уберу - буду фильтровать на клиенте (строк с выполнением этого условия на порядок меньше чем остальных)
А как выбирать составной индекс? я просто делаю (А,Б,В) (А,В,Б) (Б,А,В) (Б,В,А) и т.д. и смотрю что оптимизатор выбрал... но обычно это делаешь на разработческой машине, где база пожиже... вот это определение селективности подойдет http://oracle-patches.ru/component/cont … cle/35/341 ?
Неактивен
вот еще метод http://habrahabr.ru/post/61845/
Неактивен
Селективность индексов (A,B) и (B,A) одинакова, если они обя использованы полностью. Поэтому обычно индекс создают исходя из возможности использовать наиболее длинную его часть. Важно учитывать, что любое неравенство или range-условие может быть только последней используемой частью индекса.
Неактивен
Целый день читал книгу "Шварц Б., Зайцев П., Ткаченко В. и др. - MySQL. Оптимизация производительности (2-е издание) - 2010" узнал много нового и интересного
Потом убрал условие v1.id != v2.id, сделал сортировку по v2.timestamp (клиент позволяет), создал индекс по v2.date+v2.timestamp - время выполнения запроса радикально увеличилось - с полутора часов до минут на тестовом индекс по v1.cookie2+v1.end_page_id создан, но оптимизатор его не использует.
Неактивен
Страниц: 1