Задать вопрос
@powerful888

MySQL база и полное кэширование — как это сделать?

Как заставить всю базу поместиться в кэш чтобы скорость увеличить её обработки, чтобы запросы чтения обрабатывались в оперативе, а запросы записи писались на диск и шли в кэширование далее в чтение ?
есть автоматизация какая то , чтото скудновато с инфой про это ?
  • Вопрос задан
  • 286 просмотров
Подписаться 2 Простой 9 комментариев
Пригласить эксперта
Ответы на вопрос 4
ipatiev
@ipatiev
Потомок старинного рода Ипатьевых-Колотитьевых
Вопрос сформулирован по-дурацки, из серии преждевременной оптимизации. "У меня ещё ни базы, ни запросов, ни нагрузки и никогда не будет, но желаю чтобы всё летало!"

Но тем не менее, ответ на него существует. И он гораздо проще, чем все извращения, которые тут наперебой предлагают всякие доброхоты.

Во-первых, увеличить innodb_buffer_pool_size до 80% от доступной памяти на сервере. Mysql совсем не дура, и прекрасно сама подтянет используемые таблицы в оперативку. И вселенская проблема нашего фантазёра будет решена.
Отдельно здесь следует упомянуть случай, когда этому буферу не просто задан недостаточный размер, а жалкие 128 мегабайт, поскольку никто не догадался поменять значение, стоявшее в конфиге по умолчанию.

Во-вторых, добавить нужные индексы. Поскольку даже в оперативке искать по миллиону записей перебором будет гораздо дольше чем в 5-10 хопов по заранее упорядоченному индексу.
Ответ написан
Fernus
@Fernus
Техник - Механик :)
https://dev.mysql.com/blog-archive/mysql-8-2-trans...

UPD:
Как заставить всю базу поместиться в кэш чтобы скорость увеличить её обработки, чтобы запросы чтения обрабатывались в оперативе

Можно нужные таблицы хранить в memory...при этом сохранность данных - ну Вы понимаете, да?

а запросы записи писались на диск и шли в кэширование далее в чтение

Ну в статье выше схема с репликацией по разным направлениям чтения/записи как раз в документации приводится...

есть автоматизация какая то , чтото скудновато с инфой про это ?

Ай, обманщик...))
Ответ написан
> Как заставить всю базу поместиться в кэш чтобы скорость увеличить её обработки

это же Redis называется
Ответ написан
@Kostik_1993
Web Developer
Посмотрите в сторону Tarantool, позиционирует себя как кеш слой поверх БД, возвможно использовать его вместо SQL, при этом вы также сможете искать и делать выборки.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы