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

Почему после импорта базы из .sql файлов таблицу с 13Гб раздуло до 55Гб?

На обоих серверах одинаковые:
  • Версия Mysql Ver 14.14 Distrib 5.7.44-48, for Linux (x86_64) using 6.2
  • Структура выросшей таблицы (поля, типы, collation).
  • Индексы в таблице.
  • Колво строк одинаковое.
  • Выборочно сравнил некоторые строки - данные одинаковые.


Старый mysql был в докере, новый - в виртуалке.
Но вроде не должно влиять же?

Бекап делал и восстанавливал через Битрикс24 (но там же просто sql?).

Проблема в том что запросы в БД сейчас иногда в рандомное время подвисают до 1минуты.
Запросы простые, с индексами. Есть подозрение что распухшая БД не влезает в память/буферы и много IO на диск.
  • Вопрос задан
  • 587 просмотров
Подписаться 4 Средний 13 комментариев
Помогут разобраться в теме Все курсы
  • Skillbox
    Java-разработчик
    8 месяцев
    Далее
  • Shultais Education
    Основы SQL
    3 месяца
    Далее
  • OTUS
    PHP Developer. Professional
    5 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
ipatiev
@ipatiev
Потомок старинного рода Ипатьевых-Колотитьевых
Судя по всему, у нас тут опять дети, заблудившиеся в лесу, АКА "проблема XY".

Реальной проблемой является "запросы в БД подвисают". При этом посмотрев на какую-то непонятную циферку, дети приходят к закономерному выводу, что проблема в "раздутой базе". И начинают искать решение не для реальной проблемы, а для воображаемой.

Если "БД не влезает в память/буферы" - это значит, что и надо настраивать "память/буферы". А не по INFORMATION_SCHEMA шариться.

В первую очередь смотрим значение innodb_buffer_pool_size, и если там стандартные птичкины слёзки в 128 мегабайт, то восхищаемся мощью своего сервера, который вообще без доступа к памяти нормально вывозит, только иногда "подвисая", и ставим innodb_buffer_pool_size равное 80% от памяти доступной на сервере.
Ответ написан
Ваш ответ на вопрос

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

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