Мы начинаем с вопросов системного уровня, поскольку некоторые из них требуют решения на самых ранних этапах. В других случаях может оказаться достаточно только беглого просмотра этого материала, поскольку значительного выигрыша в оптимизации он не обеспечивает. Однако всегда хорошо иметь представление о том, какую пользу можно получить при изменении параметров на этом уровне.
Используемая по умолчанию операционная система имеет действительно большое значение! Чтобы получить максимальную выгоду от применения многопроцессорных компьютеров, следует применять Solaris (так как под этой ОС потоки работают в самом деле хорошо) или Linux (поскольку ядро 2.2 обеспечивает действительно хорошую поддержку SMP). Однако на 32-разрядных компьютерах Linux по умолчанию имеет ограничение размера файлов в 2 Гб. Будем надеяться, что это ограничение в скором времени будет снято при выпуске новых файловых систем (XFS/Reiserfs). Но если вам действительно не обойтись без файлов с размерами более чем 2 Гб на 32-разрядном ПК с Linux-intel, то следует использовать патч LFS для файловой системы ext2.
На многих платформах MySQL еще не находился в промышленной эксплуатации, поэтому мы рекомендуем прежде, чем остановить свой выбор на какой-либо платформе, сначала ее протестировать.
Другие советы:
Если оперативной памяти достаточно, то можно было бы удалить все внешние запоминающие устройства. Существуют операционные системы, которые при некоторых обстоятельствах будут использовать внешние запоминающие устройства даже при наличии свободной памяти.
-
Чтобы избежать внешнего блокирования, используйте опцию MySQL
--skip-external-locking
. Следует учитывать, что пока работает только один сервер, это не будет оказывать большого влияния на функциональные возможности MySQL. Только не забудьте остановить сервер (или блокировать соответствующие части) перед запускомmyisamchk
. В некоторых системах такое переключение обязательно, поскольку внешнее блокирование не работает в любом случае.Опция
--skip-external-locking
включена по умолчанию при компилировании с потокамиMIT-pthreads
, поскольку функцияflock()
не полностью поддерживается потокамиMIT-pthreads
на всех платформах. Для Linux также подразумевается, что блокирование файлов пока еще ненадежно.Нельзя использовать
--skip-external-locking
только в одном случае - при запуске нескольких серверов (не клиентов) MySQL на одних и тех же данных, или при запускеmyisamchk
на таблице без предварительного сбрасывания на диск и блокирования демонаmysqld
для сервера, содержащего эти таблицы. Можно также применять командуLOCK TABLES/UNLOCK TABLES
даже при использовании--skip-external-locking
.