Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.04.2023, 17:30   #1
mikado3333
Пользователь
 
Регистрация: 25.09.2013
Сообщений: 58
По умолчанию Большой объем таблиц JSON

Приветствую. Столкнулся с проблемой больших размеров таблиц использующих поля json.
К примеру таблица размером 50 МБ при многократном обращении к ней с INSERT, UPDATE, DELETE приводит к размеру 1.8 ГБ. При проведении оптимизации таблицы размер данных схлопывается до 65 МБ. Не могу понять с чем связано.

На сайте MySQL написано:
Цитата:
Требования к хранилищу JSON
В общем, требования к хранению для JSON столбца примерно такие же, как для LONGBLOB или LONGTEXT столбец; то есть пространство, занимаемое документом JSON, примерно такое же, как было бы для строкового представления документа, хранящегося в столбце одного из этих типов. Однако двоичное кодирование, включая метаданные и словари, необходимые для поиска, отдельных значений, хранящихся в документе JSON, накладывает дополнительные расходы. Например, строка, хранящаяся в документе JSON, требует от 4 до 10 байт дополнительного хранилища, в зависимости от длины строки и размера объекта или массива, в котором она хранится.

Кроме того, MySQL накладывает ограничение на размер любого документа JSON, хранящегося в JSON столбце, таким образом, что он не может быть больше значения max_allowed_packet.
Изменил на max_allowed_packet с 64 МБ на 16 МБ, но разницы не почувствовал.
mikado3333 вне форума Ответить с цитированием
Старый 12.04.2023, 09:04   #2
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,155
По умолчанию

конь в сферическом вакууме....

DELETE точно не может увеличивать объем данных
INSERT/UPDATE - тут надо смотреть какие вы данные шлете
ADSoft вне форума Ответить с цитированием
Старый 12.04.2023, 09:52   #3
mikado3333
Пользователь
 
Регистрация: 25.09.2013
Сообщений: 58
По умолчанию

Цитата:
Сообщение от ADSoft Посмотреть сообщение
INSERT/UPDATE - тут надо смотреть какие вы данные шлете
Думаю здесь не в данных дело, а в "механизме" записи json.
mikado3333 вне форума Ответить с цитированием
Старый 12.04.2023, 10:46   #4
mikado3333
Пользователь
 
Регистрация: 25.09.2013
Сообщений: 58
По умолчанию

Выполнил
Код:
SELECT SUM(JSON_STORAGE_SIZE(data)) AS size,
            SUM(JSON_STORAGE_FREE(data)) AS free
  FROM  bd.data d

вывод: size 31745097 (30 mb)
           free 92604
сам файл data.ibd = 315 mb
mikado3333 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
JSON (ISuperObject) как сформировать json объект Alar Общие вопросы Web 1 23.03.2022 08:52
Создать файл, содержащий сведения о компьютерах. Структура записи: тип ПК, тактовая частота, объем ОП, объем винчестера, стоимость. Марус Помощь студентам 5 21.03.2017 14:59
Большой объем данных matanga Microsoft Office Excel 4 09.12.2010 13:14
Большой объем файла после создания скриншота. Как уменьшить? artemavd Общие вопросы Delphi 7 19.07.2010 19:52
Delphi и большой объем текста BuT@JL Помощь студентам 3 13.03.2009 13:53