Как точно настроить базу данных AWS R4 Aurora MySql

У меня есть база данных в настоящее время на 6,5 Гб, но быстро растет...

В настоящее время на сервере R4L Aurora, 15.25G Ram, 2-ядерный процессор

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

99% данных - это история транзакций, эта таблица является самой большой на сегодняшний день. Он пишется очень часто, но после записи строки он не часто меняется (хотя иногда и меняется).

Так мало вопросов...

1) Стоит ли отключать кеш?

2) Я буду в порядке с 15G оперативной памяти, даже если сама база данных идет (скажем) 30G, или я буду видеть огромные проблемы со скоростью

3) База данных хорошо проиндексирована, но можно ли это улучшить? Например, если (скажем) 1 миллион записей принадлежит одному пользователю, есть ли способ разделить данные, чтобы предотвратить замедление доступа для других пользователей?

Спасибо

3 ответа

  • "Должен ли я отключить кэш?" - Какой "кеш"?
  • "Я увижу огромные проблемы со скоростью" - нам нужно видеть запросы и т. д.
  • "База данных хорошо проиндексирована" - если это означает, что вы проиндексировали каждый столбец, значит, он плохо проиндексирован. Пожалуйста, покажите нам SHOW CREATE TABLE и несколько важных запросов.
  • "раздел" - за редким исключением, разделение не ускоряет работу таблиц MySQL. Опять же, нам нужны детали.
  • "15.25G Ram" & "база данных...15G" - размер набора данных, как правило, больше или даже больше, чем ОЗУ. Таким образом, эта пара чисел не обязательно хороша для сравнения друг с другом.
  • "1 миллион записей принадлежит одному пользователю" - опять детали, пожалуйста.

Память экземпляра просто вступает в игру, когда движок выбирает страницы в буферный пул на случай пропущенных страниц. Это не зависит от вашего фактического размера данных (за исключением, например, в крайних случаях, ваши записи действительно очень большие). Правило большого пальца заключается в том, чтобы вы всегда хранили рабочий буфер в пуле буферов и избегали сбрасывания страниц.

Если вашему приложению необходимо обработать большой объем данных, то идеальный способ сделать это - иметь выделенные реплики для запросов определенного типа. Таким образом, вы не будете менять действительные страницы в пользу новых запросов. Aurora теперь поддерживает пользовательские конечные точки, и это делает управление еще проще.

Если вам нужны более конкретные рекомендации, вам может потребоваться поделиться информацией о ваших данных, индексах, запросах и т. Д.

Вы должны статистически объяснить рост данных. Это можно сделать, запустив группу запросов count(*) по столбцу даты (года). Как только у вас будет количество записей в год, вы сможете понять, что происходит.

Теперь вы можете думать о возможных решениях

  1. Вы можете удалить данные, которые больше не актуальны с точки зрения истории, и сохранить хранилище ограниченным.
  2. Если имеется большой объем данных, например, Blob и т. Д., Возможно, вы можете сохранить его в S3 и сохранить ссылку в таблице базы данных.
  3. Удалите все ненужные таблицы. Иногда администратор базы данных создает временные таблицы резервных копий и оставляет их там после работы. Вы можете почистить такие столы.
Другие вопросы по тегам