Затраты MySQL — как настроить сервер для ускорения неверных запросов

У меня есть магазин на платформе PHP (плохо разработанный), где много плохих запросов (длинные запросы без индексов, упорядочение по rand (), динамический подсчет, ..)

У меня пока нет возможности изменить запросы, но мне нужно настроить сервер, чтобы он оставался в живых.

Я перепробовал все, что знаю, у меня были очень большие базы данных, которые я оптимизировал, изменив движок MySQL и настроив его, но это первый проект, где все рушится.

Текущая ситуация:

1. Интерфейс (PHP) — Экземпляр AWS m4.large, Amazon Linux (последняя версия), PHP 7.0 с включенным opcache (модуль apache), включенный mod_pagespeed с внешним Memcached на AWS Elasticache (t2.micro, средняя загрузка 5%)

2. SQL — Percona DB с движком TokuDB на экземпляре AWS c4.xlarge (средняя загрузка 50%)

Мне нужно опустить экземпляры, в основном c4.xlarge, но если я переключусь на c4.large, через несколько часов произойдет большая перегрузка.

База данных имеет только 300 МБ данных, я пробовал кеш запросов, InnoDB, XtraDB, … безуспешно, и трафик также очень низкий. PHP использует расширение MySQLi.

Знаете ли вы какое-либо возможное решение, как снизить нагрузку без рефакторинга запросов?

0

Решение

Использование www.mysqlcalculator.com было бы быстрым способом проверить мозг примерно на дюжине факторов потребления памяти менее чем за 2 минуты.
Хотелось бы увидеть ваши SHOW GLOBAL STATUS и SHOW GLOBAL VARIABLES, если бы вы могли публиковать их для анализа активности и запросов конфигурации. 3 минуты вашего GENERAL_LOG в течение занятого времени были бы интересны и могли бы выявить хлопотные / трудоемкие SELECT и т. Д.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]