ГРУППА КУРСА
|
Главная >
Учебник MySQL >
Оптимизация запросовОптимизация - это действия, направленные на то, чтобы программа выполнялась быстрее и задействовала меньше ресурсов компьютера. Оптимизацию нужно проводить во всех языках, в которых вы рботаете. Это нужно делать, даже если ваша программа кажется маленькой и быстрой. Ведь вы не знаете, в каких условиях она будет работать. Ресурсы, которые она занимает, могут потребоваться другим программам. Для MySQL оптимизация также имеет большое значение. Чем быстрее выполняются запросы, тем быстрее работает сайт. Это важно при продвижении. И нужно учитывать, что запросы выполняются на сервере. От скорости выполнения запросов во многом зависит количество пользователей, которые одновременно могут находиться на сайте. Правильность написания запросов и серверных скриптов влияет на то, сколько средств вы тратите на хостинг. Указывайте поля в выборке Получайте в выборке только те поля, которые будут использованы. SELECT поле1, поле2 FROM таблица WHERE условие Перечисляйте поля, даже если их много. Не нужно загружать сервер бесполезными данными. Получайте только нужные записи Нежелательна ситуация, когда вы получаете большую выборку, а потом отфильтровываете данные в PHP скрипте. Вместо этого можно использовать вложенную выборку и другие способы уменьшить количество записей. Уменьшайте количество запросов Каждый запрос к MySQL занимает ресурсы сервера. Нужно стремиться обеспечить функционал сайта меньшим числом запросов. В этом поможет хорошее знание SQL. Объединяйте однотипные запросы. Делайте выборку из двух и большего количества таблиц. Добавление в одну таблицу объединяйте в один запрос. Ограничивайте количество записей в запросе Если известно, сколько записей должно быть затронуто запросом, то нужно ограничивать количество записей. Например, нужно получить или изменить данные конкретного пользователя. Вы знаете, что будет затронута только одна запись. Значит, нужно так и указать в запросе. UPDATE users SET inform="информация" WHERE id=5 LIMIT 1 Когда запись найдена и изменена, то запрос выполнен и остальные записи не будут проверяться на соответствие условию. Это экономит ресурсы сервера. Очищайте результат выборки Это делается с помощью функции mysqli_free_result(). Она очищает память, которую занимает результат. Это нужно делать, если скрипт отправляет несколько запросов на выборку и результат может содержать много записей. +
Закрывайте соединение с базой данных Это делает функция mysqli_close() Это имеет смысл, когда скрипт выполняет много действий, и это занимает значительное время. В этом случае нужно сделать все необходимые запросы и закрыть соединение. А потом делать всё остальное. Так скрипт не будет долго держать соединение, которое не используется. |