Имеется множество запросов к базе следующего вида:
SELECT `id` FROM `table` WHERE `ip` = '000.000.000.000' ORDER BY `updated_at` DESC
Вопрос: Правильно будет проиндексировать столбцы ip
и updated_at
вместе или только столбец ip
? Индексы какого типа необходимо использовать?
В таблице > 6 миллионов строк, не затормозит ли работу индексация, если я прямо сейчас сделаю запрос на создание индекса?
Индексация наоборот улучшает оптимизацию. В данном случае Вам нужно сделать составной индекс ip и updated_at CREATE INDEX ip_updated ON users(ip, updated_at);
Ваш же случай описан здесь
Сортировка
Составные индексы также можно использовать, если выполняется сортировка:
SELECT * FROM users WHERE gender = 'male' ORDER BY age В этом случае нам нужно будет создать индекс в другом порядке, т.к. сортировка (ORDER) происходит после фильтрации (WHERE):
CREATE INDEX gender_age ON users(gender, age); Такой порядок колонок в индексе позволит выполнить фильтрацию по первой части индекса, а затем отсортировать результат по второй.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Доброго вечера! Может кто подскажет, если способ получить в ответ, вместо строки её JSON, те
Имеется код, для которого нужно создать два теста (примеры приложил)До этого момента, модульные тесты не делал в Visual Studio