Дилемма о MySQL. используя условие для ограничения нагрузки на DBF - PullRequest
0 голосов
/ 27 марта 2010

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

Мое мышление а) если база данных проходит только первый месяц, а затем возвращает записи, это хорошо. б) если база данных проходит всю базу данных + проверка состояния по каждой записи, это на самом деле хуже, чем отсутствие условия.

Каково ваше мнение? Как бы вы пошли о снижении нагрузки на DBF?

Ответы [ 2 ]

0 голосов
/ 27 марта 2010

Если вам нужна дополнительная информация о том, как база данных будет выполнять ваш запрос; Вы можете использовать команду MySQL EXPLAIN , чтобы выяснить это. Например, это скажет вам, может ли он использовать индекс для запроса.

0 голосов
/ 27 марта 2010

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

Тем не менее, обычно считается, что вам лучше оптимизировать запросы, индексы, настройки сервера баз данных и оборудование в таком порядке. Изменение того, как вы запрашиваете данные, может уменьшить влияние запроса в миллион раз для запроса, который в первую очередь плохо сформулирован, в зависимости от набора данных.

Если нет очевидных областей для ускорения в том, как формулируется сам запрос (соединения выполнены правильно, или объединения не нужны, или эффективное использование индексов), добавление индексов, чтобы помочь вашим общим запросам, было бы хорошим следующим шагом. *

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