мне действительно нужен индекс в моей таблице? - PullRequest
0 голосов
/ 20 августа 2011

У меня есть таблица с именем brute для учета ошибок при входе в систему и прочее, а также для предотвращения атак с использованием грубой силы с показом капчи.

имеет поля: domain, ip, time

  • Удаление производится в поле time. ex: удалить все записи старше 1 дня.

  • Для выбора требуется все три столбца, чтобы обнаружить возможную атаку. ex: 5 записей (ошибок) ip xxxx при входе в систему менее чем за 10 минут.

Вопрос: действительно ли мне нужен индекс (основной или нет)?Некоторые друзья говорят мне, что мне нужно, но это кажется ненужным.

obs: I've stumbled in similar questions around here. Although helpful, they couldn't solve my question entirely for this case. спасибо (:

Ответы [ 4 ]

2 голосов
/ 20 августа 2011

В дополнение к тому, что упомянул Одед, если сайт будет выходить в Интернет (что, похоже, будет), я предлагаю вам добавить индексы, поскольку эта таблица может стать очень, очень большой. Особенно после нескольких неприятных вещей в Интернете просканируйте ваш сайт и начните пытаться угадать логин.

1 голос
/ 20 августа 2011

Сокращение числа индексов в вашей таблице действительно увеличит производительность записи.

Вопрос в том, поможет ли вам запрос индексом - и это зависит от нескольких вещей:

  • Размер вашего стола
  • требование времени указанных запросов
  • Помогут ли запросы индексом

Я бы предложил взять образец таблицы и запустить тесты. используйте EXPLAIN, чтобы понять, как используются ваши индексы.

1 голос
/ 20 августа 2011

В некоторых случаях реорганизация индекса (B-Tree) в операциях массового удаления может быть более дорогой, чем последовательное сканирование. Если производительность становится проблемой, вы должны попытаться добавить индекс и измерить требуемое время. Без индекса все данные должны быть прочитаны и отфильтрованы (с помощью условия where, последовательного сканирования), но без дополнительных затрат. для реорганизации индекса.

0 голосов
/ 20 августа 2011

Да, в общем случае вы должны индексировать столбцы, по которым вы сортируете, запрашиваете, обновляете и удаляете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...