Читать «MySQL 5.0. Библиотека программиста» онлайн - страница 140
Виктор Гольцман
будет отложено до тех пор, пока не будут выполнены все операции чтения для данной таблицы.
• Вставку строк можно выполнять в отложенном режиме, задав в команде INSERT и REPLACE параметр DELAYED. При этом клиентское приложение сразу же получает сообщение о результате выполнения операции, однако добавляемая строка записывается не непосредственно в таблицу, а в очередь отложенных добавлений (общую для всех клиентских приложений). Как только таблица освобождается от предыдущей блокировки, в нее единой группой вносятся строки, накопленные в очереди. Если очередь слишком велика, то операция вставки строк в таблицу периодически прерывается для выполнения ожидающих своей очереди запросов. Таким образом, отложенный режим добавления строк замедляет выполнение запросов в меньшей степени, чем обычный режим.
• Если необходимо сочетать массовое удаление строк и выполнение запросов, рекомендуется удалять строки поэтапно, используя параметр LIMIT команды DELETE (см. раздел 2.6 «Изменение данных»).
• Повысим приоритет отдельных запросов, включив в текст запроса параметр HIGH_PRIORITY.
Например, запросбудет выполняться даже при наличии ожидающих своей очереди блокировок записи.
• В текст запроса можно также включить параметр SQL_BUFFER_RESULT, который указывает необходимость записать результат запроса во временную таблицу. Это позволяет быстрее снять с таблицы блокировку чтения в случае, когда отправка результата запроса клиентскому приложению занимает длительное время.
Итак, вы узнали, как уменьшить негативное влияние блокировок на быстродействие операций с таблицами. Осталось подвести итоги главы.6.5. Резюме
Добиться максимальной производительности сервера MySQL возможно только при наличии глубоких знаний системы, понимания механизмов выполнения запросов и устройства различных типов таблиц. В данной главе мы рассмотрели лишь некоторые приемы, позволяющие ускорить работу с данными. А именно, вы научились создавать более эффективные запросы, использовать индексы, корректировать параметры таблиц и значения некоторых системных переменных, предотвращать проблемы с блокировками. Множество возможностей оптимизации осталось за рамками нашей книги; информацию о них вы можете найти в документации MySQL.