Необходимо делать выбоку по ip, добавляю b-tree индекс, полученную выборку нужно сортировать по id в обратнку сторону 99-98-97. Соответственно explain показывать, что использует индекс по ip, а также filesort. Добавдяю новый индекс с учетом id, чтобы избавиться от filesort:
create index idx_ip_id on table(ip, id)
Новый индекс срабатывает, filesort-а нет. Сообственно вопрос — нормально вообще делать делать, чтобы избавляться от filesort?
Re: (MySQL) индексы - так делать хорошо или плохо?
Здравствуйте, MasterMind, Вы писали:
MM>Новый индекс срабатывает, filesort-а нет. Сообственно вопрос — нормально вообще делать делать, чтобы избавляться от filesort?
Да, нормально. Только убейте старый индекс, который только по ip.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[2]: (MySQL) индексы - так делать хорошо или плохо?
Здравствуйте, Sinclair, Вы писали:
S>Здравствуйте, MasterMind, Вы писали:
MM>>Новый индекс срабатывает, filesort-а нет. Сообственно вопрос — нормально вообще делать делать, чтобы избавляться от filesort? S>Да, нормально. Только убейте старый индекс, который только по ip.
Ну да я знаю, работает принцип слева на право.
Re: (MySQL) индексы - так делать хорошо или плохо?
Здравствуйте, MasterMind, Вы писали:
MM> Новый индекс срабатывает, filesort-а нет. Сообственно вопрос — нормально вообще делать делать, чтобы избавляться от filesort?
Нормально, только если приложение планирует жить долго, для IP адреса тип int не подходит.
... в первом классе мне говорили, что нужно делиться, а теперь говорят, что это незаконно ...
Re[2]: (MySQL) индексы - так делать хорошо или плохо?
Здравствуйте, Anton Batenev, Вы писали:
AB>Здравствуйте, MasterMind, Вы писали:
MM>> Новый индекс срабатывает, filesort-а нет. Сообственно вопрос — нормально вообще делать делать, чтобы избавляться от filesort?
AB>Нормально, только если приложение планирует жить долго, для IP адреса тип int не подходит.
А что за тип тогда можно использовать? Использую встроенное преобразование ntoa.
Re[3]: (MySQL) индексы - так делать хорошо или плохо?
Здравствуйте, MasterMind, Вы писали:
MM> AB>Нормально, только если приложение планирует жить долго, для IP адреса тип int не подходит. MM> А что за тип тогда можно использовать? Использую встроенное преобразование ntoa.
VARBINARY(16) + INET6_* преобразования (правда для MySQL < 5.6 придется кодировать / декодировать на клиентской стороне).
Управляю вселенной не привлекая внимания санитаров.