Есть ли способ автоматически создать список столбцов, нуждающихся в индексации?

Красота ORM убаюкивала меня снотворным. У меня есть существующее приложение Django с отсутствием индексов базы данных. Есть ли способ автоматически создать список столбцов, нуждающихся в индексировании?

Я подумал, может быть, какое-то промежуточное программное обеспечение, которое регистрирует, какие столбцы участвуют в предложениях WHERE? но есть ли что-нибудь встроенное в MySQL, что могло бы помочь?

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
5
0
611
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Да, есть.

Если вы посмотрите на журнал медленных запросов, там есть вариант --log-queries-not-using-indexes

Жаль, что нет сообщения о более общем решении, таком как упомянутое промежуточное ПО.

ohnoes 13.01.2009 13:50

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

zgoda 13.01.2009 14:44

Нет.

Добавление индексов ко всем «медленным» запросам волей-неволей также замедлит вставку, обновление и удаление.

Индексы - это баланс между быстрыми запросами и быстрыми изменениями. Нет общего или «правильного» ответа. Конечно, нет ничего, что могло бы это автоматизировать.

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

В моем случае, как и во многих веб-приложениях, он требует большого количества операций чтения - записи выполняются только администратором, а размер таблицы довольно мал. Согласны ли вы в этом случае, что добавление индексов ко всем столбцам, используемым при поиске, было бы полезным?

Andy Baker 13.01.2009 16:54

@andybak: Индексирование Willy-Nilly - плохой план. Некоторые индексы могут показаться хорошей идеей, но должны принести реальную пользу. Два правила: (1) Меняйте что-то одно за раз; (2) Измерьте до и после. Никогда не расстреливайте кучу изменений и надежду.

S.Lott 13.01.2009 16:57

Другие вопросы по теме