как увеличить использование памяти в mysql server для повышения скорости?

<p>у меня есть сервер windows 2008 с 8 гб ram под управлением iis7 и mysql. я отслеживал использование памяти, процессора и диска на сервере и обнаружил, что mysql использует только 250 мб озу, что делает диски очень занятыми, хотя у меня много свободного оперативного диска.</p><p>в sql server я могу легко установить объем памяти, который я хочу использовать, я ищу ту же настройку в mysql.</p><p>как я могу настроить mysql, чтобы использовать больше памяти и уменьшить использование процессора и диска?</p>

<p><code>table\_cache</code> - самая полезная директива конфигурации, которую нужно изменить. каждый раз, когда mysql обращается к таблице, она загружает таблицу в кэш. если у вас есть большое количество таблиц, быстрее их кэшировать.</p><p>посмотрите на переменные вашего сервера, выполнив:</p><pre><code>show status; </code></pre><p>и посмотрите на переменную <code>open\_tables</code>. если это так же, как ваш <code>table\_cache</code> значение и <code>opened\_tables</code> продолжает расти, тогда вам нужно увеличить <code>table\_cache</code> значение в вашем файле конфигурации. вы найдете баланс, экспериментируя с этими переменными в пиковое время. вы хотите настроить его так, чтобы в часы пиковой нагрузки было мало <code>opened\_tables</code> даже после долгого времени работы сервера.</p><p><code>key\_buffer\_size</code> также является хорошей переменной для экспериментов. эта переменная влияет на размер буфера индекса, и увеличение этой переменной увеличивает скорость обработки индекса mysql. вы можете посмотреть на переменные с помощью <code>show variables;</code> снова введите команду и сравните <code>key\_read\_requests</code> до <code>key\_reads</code>. в идеале вы хотите, чтобы соотношение между этими двумя переменными было как можно ниже, и вы можете сделать это, увеличив размер <code>key\_buffer\_size</code>. если вы установите эту переменную выше, у вас будет меньше операций записи и чтения непосредственно на диск и с него, что было вашей главной задачей.</p>

<p>вам нужно изменить значения в <code>my.cnf</code> файл и перезапустите mysql, хотя многие из них можно изменить во время работы mysql (значение 'set global variable = <em> </em>').</p><p>возможно, вы захотите взглянуть на увеличение <code>key\_buffer\_size</code>, <code>sort\_buffer</code>, <code>read\_buffer</code> а также <code>table\_cache</code> для начинающих и, вероятно, <code>innodb\_buffer\_pool\_size</code>, если у вас есть таблицы innodb. некоторые из этих значений вы можете значительно увеличить (даже на два порядка), особенно учитывая ваше оборудование. стандартные настройки mysql чрезвычайно консервативны и, по-видимому, нацелены на обычные настольные компьютеры смешанного использования около десяти лет назад. да, и имейте в виду, что 32-битная версия будет иметь проблемы с использованием более 2 гб озу.</p><p>посмотрите в <a href="http://dev.mysql.com/doc/refman/5.0/en/server-system-variables.html">руководство по mysql</a> для получения дополнительной информации и рекомендаций.</p>