У меня есть машина с 1 ГБ ОЗУ, и apache настроен на использование STARTSERVER OF 150 и MAXCLIENTS 150, используется только половина, поэтому у меня все еще есть примерно на 500 МБ свободной ОЗУ. Я хочу, чтобы MySQL использовал это, поскольку прямо сейчас запущенный тест AB показывает, что со статическим изображением я получаю 6000 запросов в секунду, а с моей CMS я получаю только 180 запросов в секунду, что является сценарием php с серверной частью MySQL. Мне нужно повысить производительность MySQL, не касаясь операторов SQL, просто сетевому администратору, а не программисту. Есть ли в MySQL такая возможность? 500 МБ свободной оперативной памяти, я хочу использовать это.
Если вы используете MyISAM, увеличьте
key_buffer_size=512M
Если вы используете InnoDB
innodb_buffer_pool_size=512M
Также обычно есть my.cnf
пресеты в пакетах MySQL, называемые my-huge.cnf
, my-large.cnf
, my-medium.cnf
и my-small.cnf
вы можете искать их.
PS. Вам действительно стоит погуглить Настройка MySQL примеры для вашей системы хранения.
После того, как вы закончите настройку параметров памяти, повышение производительности базы данных обычно сводится к созданию индексов или иному изменению физической структуры ваших данных для лучшей локализации, например, путем кластеризации по индексу.
Конечно, поддержание индекса также связано с большими накладными расходами, не вносите никаких изменений, если не знаете, что делаете. И не ожидайте, что база данных будет использовать свои индексы, пока в данной таблице не будет несколько строк K.