Программирование >>  Программный интерфейс приложений 

1 ... 73 74 75 [ 76 ] 77 78 79 ... 264


значению auto INCREMENT. Не будет возвращено количество повторений в уникальных индексах, если таковые имеют место Это происходит из-за того, что операция вставки возвращает статус до реального завершения операции В качестве другого подводного камня можно назвать ситуацию, когда строки из операторов insert delayed ставятся в очередь на добавление в тот момент, когда сервер совершил сбой или остановлен командой kill -9, В этом случае сервер добавляет строки до наступления полного останова

Оптимизация для администраторов

Все предьщ;щие разделы этой главы посвящались методам оптимизации операций для создания, индексирования таблиц и написания запросов, которые доступны обычным пользователям СУБД MySQL. Но оптимизация оставляет поле деятельности и для системных администраторов, которые управляют сервером СУБД MySQL или машиной, на которой он работает. Есть параметры сервера, которые имеют непосредственное отношение к обработке запросов. Они поддаются настройке.

Параметры сервера

Сервер имеет несколько настраиваемых параметров (переменных), влияющих на его pa6oiy. Детальное изложение этой темы можно найти в главе И, Общее администрирование MySQL , но здесь мы коснемся только тех из них, которые непосредственно связаны с обработкой запросов.

delayed queue size. Эта переменная определяет количество строк оператора INSERT DELAYED, которые могут храниться в очереди до тех пор, пока клиенты, выполняющие другие операторы INSERT DELAYED, не будут заблокированы. Увеличение значения этой переменной позволит серверу принимать больше строк запроса этого типа. Таким образом, больше клиентов сможет работать без блокировки.

keybuf fersize. Это размер буфера, в котором хранятся блоки индекса. Если на сервере достаточно памяти, увеличение этого значения сократит время создания и модификации индексов. Чем больше этот размер, тем больше можно одновременно хранить индексных блоков. Это в свою очередь увеличивает вероятность выборки ключевых значений без подкачки новых блоков с диска.

В версии 3.23 и выше при увеличении размера буфера можно прибегнуть к старту сервера с параметром - -init-file. Это позволит указать файл с операторами языка SQL в момент запуска сервера. Таким приемом, например, в момент запуска сервера таблицы, предназначенные только для чтения, которые можно запросто хранить в памяти, копируются в таблицы формата HEAP. Это уменьшит время просмотра их индексов.



Проблема аппаратной платформы

Производительность сервера можно увеличить, выполнив следующие настройки аппаратной платформы.

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

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

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

Для сокращения задержек операций вБода/выБОда постаБьте более быстродейсТБующие диски. Время поиска является наиболее критическим фактором, влияющим на производительность.

Старайтесь распределить дискоБые операции между различными физическими устройствами. Например, если есть возможность хранить две самые загруженные базы данных на различных физических дисках, обязательно сделайте это. Следует заметить, что использование различных логических разделов, находящихся на одном и том же физическом устройстве, будет недостаточно. Это не поможет, так как они по-прежнему будут конкурировать за один и тот же физический ресурс (головки диска). Процедура переноса баз данных описана в главе 10, Клталог данных MySQL . Перед тем как перенести данные на другое устройство, убедитесь в том, что вам понятны характеристики загрузки вашей системьг И если новый диск уже занят каким-то загруженным ресурсом, такой перенос не принесет никакой пользы. Например, вы не получите никакой выгоды от переноса базы данных на устройство, где располагается дерево документов сервера. (Конечно, при наличии одного физического диска какое-то существенное перераспределение загрузки диска вряд ли возможно.)

При построении приложений для СУБД MySQL их предпочтительно создавать со статическими, а не разделяемыми библиотеками. Динамические двоичные коды, которые используются в разделяемых библиотеках, экономят место на дисках, а статические - работают быстрее. (Однако статическими библиотеками нельзя будет воспользоваться при необходимости запуска пользовательских функций, подключающихся динамически.)



Программные интерфейсы СУБД

MySQL

В этой части...

5. Введение в программирование в СУБД MySQL

6. Программный интерфейс MySQL С API

7. Профаммный интерфейс Perl API

8. Интерфейс API для языка написания сценариев РНР



1 ... 73 74 75 [ 76 ] 77 78 79 ... 264

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика