Забавный вопрос, требующий помощи в оптимизации запросов, в котором не упоминается конкретный запрос.
Вот несколько советов по настройке параметров:
default-storage-engine=MyISAM
Измените механизм хранения по умолчанию на InnoDB и убедитесь, что все ваши существующие таблицы InnoDB. Не используйте MyISAM.
query_cache_size=256M
query_cache_type=1
Установите размер и тип кэша запросов равным 0. Кэш запросов полезен в таких редких случаях, что он устарел и удаляется в MySQL 8.0. Лучше кэшировать результаты запросов в коде вашего приложения в каждом конкретном случае.
innodb_buffer_pool_size=8G
Если у вас намного больше данных, чем 8G, рассмотрите возможность увеличения размера буферного пула. Чем больше ваших данных и индексов находится в оперативной памяти, тем лучше для производительности. Но нет никакой дополнительной выгоды от добавления оперативной памяти, когда ваши данные и индексы кэшируются на 100% в пуле буферов.
И, конечно, не перераспределяйте буферный пул так, чтобы он начал перестановку сервера. Это снизит производительность (иначе OOM killer в Linux прекратит работу mysqld, если у вас нет свопа).
key_buffer_size=512M
Нет необходимости в дополнительной памяти, выделенной для буфера ключей, если вы не используете MyISAM.
Могут быть и другие параметры настройки, которые могут принести пользу, но, поскольку вы ничего не сказали о своих запросах или активности сервера, нет никакого способа угадать, какими они будут.
Вам лучше сосредоточиться на индексах и дизайне запросов.
В целом оптимизация естественным образом улучшает некоторые запросы за счет других запросов. Таким образом, вы можете разработать стратегию оптимизации только после того, как знаете, какие запросы нужно оптимизировать.