(MySQL) индексы - так делать хорошо или плохо?
От: MasterMind Россия  
Дата: 10.06.15 08:38
Оценка:
Есть таблица

table:

id primary key auto_increment
ip  int 
...


Необходимо делать выбоку по 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) индексы - так делать хорошо или плохо?
От: Sinclair Россия https://github.com/evilguest/
Дата: 10.06.15 10:22
Оценка:
Здравствуйте, MasterMind, Вы писали:

MM>Новый индекс срабатывает, filesort-а нет. Сообственно вопрос — нормально вообще делать делать, чтобы избавляться от filesort?

Да, нормально. Только убейте старый индекс, который только по ip.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[2]: (MySQL) индексы - так делать хорошо или плохо?
От: MasterMind Россия  
Дата: 10.06.15 11:22
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, MasterMind, Вы писали:


MM>>Новый индекс срабатывает, filesort-а нет. Сообственно вопрос — нормально вообще делать делать, чтобы избавляться от filesort?

S>Да, нормально. Только убейте старый индекс, который только по ip.

Ну да я знаю, работает принцип слева на право.
Re: (MySQL) индексы - так делать хорошо или плохо?
От: Anton Batenev Россия https://github.com/abbat
Дата: 10.06.15 12:49
Оценка:
Здравствуйте, MasterMind, Вы писали:

MM> Новый индекс срабатывает, filesort-а нет. Сообственно вопрос — нормально вообще делать делать, чтобы избавляться от filesort?


Нормально, только если приложение планирует жить долго, для IP адреса тип int не подходит.
... в первом классе мне говорили, что нужно делиться, а теперь говорят, что это незаконно ...
Re[2]: (MySQL) индексы - так делать хорошо или плохо?
От: MasterMind Россия  
Дата: 10.06.15 13:46
Оценка:
Здравствуйте, Anton Batenev, Вы писали:

AB>Здравствуйте, MasterMind, Вы писали:


MM>> Новый индекс срабатывает, filesort-а нет. Сообственно вопрос — нормально вообще делать делать, чтобы избавляться от filesort?


AB>Нормально, только если приложение планирует жить долго, для IP адреса тип int не подходит.


А что за тип тогда можно использовать? Использую встроенное преобразование ntoa.
Re[3]: (MySQL) индексы - так делать хорошо или плохо?
От: Anton Batenev Россия https://github.com/abbat
Дата: 10.06.15 23:09
Оценка: 2 (1)
Здравствуйте, MasterMind, Вы писали:

MM> AB>Нормально, только если приложение планирует жить долго, для IP адреса тип int не подходит.

MM> А что за тип тогда можно использовать? Использую встроенное преобразование ntoa.

VARBINARY(16) + INET6_* преобразования (правда для MySQL < 5.6 придется кодировать / декодировать на клиентской стороне).
Управляю вселенной не привлекая внимания санитаров.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.