Nano Hash - криптовалюты, майнинг, программирование

Как получить место для хранения таблицы в движке хранения MariaDB MyRocks

Я пытаюсь получить место, которое занимает на диске таблица, использующая механизм хранения MyRocks, и получаю противоречивые результаты между тем, что я ожидаю, запросом на information_schema и размером, как сообщает ОС.

Чтобы получить размер, как сообщает MariaDB, я использую следующий оператор выбора:

select table_name 'Table Name',
      (data_length+index_length)/power(1024,3) 'Table Size in GB' 
from information_schema.tables where table_schema="MyTableName";

Что возвращает очень небольшое число для того, что я делаю, до такой степени, что я сомневаюсь, что он сообщает фактический размер (0,4 ГБ для 4 000 000 строк с большим количеством текста).

Если я запускаю команду du -h /var/lib/mysql/#rocksdb/, я получаю размер диска 2,4 ГБ, что немного больше, чем я ожидал. Однако, если я правильно понимаю, MyRocks сжимает данные по мере их вставки, поэтому возможно, что дисковое пространство, сообщаемое командой du, не соответствует фактическому размеру таблицы.

Итак, есть ли надежный способ получить размер таблицы? Я уже использую правильный способ получить размер таблицы?


Ответы:


1

Похоже, вам нужно использовать POWER(1024,3) вместо POWER(2014,3), предполагая, что механизм хранения — MyISAM:

select table_name AS `Table Name`,
      (data_length+index_length)/power(1024,3) AS `Table Size in GB` 
from information_schema.tables 
where table_schema='MyTableName';

И расчет:

(data_length+index_length)/(2014*2014*2014) = 0.4
=> 
(data_length+index_length) = 3267671497,6

3267671497,6/(1024*1024*1024) = 3.04GB

DATA_LENGTH

Для MyISAM DATA_LENGTH — это длина файла данных в байтах.

Для InnoDB DATA_LENGTH — это приблизительный объем памяти, выделенный для кластеризованного индекса, в байтах. В частности, это размер кластеризованного индекса в страницах, умноженный на размер страницы InnoDB.)

14.10.2018
  • Привет Лукаш, спасибо за ваш ответ. К сожалению, это была опечатка, когда я писал вопрос. На самом деле я использовал 1024. Извините, что потратил ваше время. 14.10.2018
  • @CydrickT Вы также можете попробовать MAX_DATA_LENGTH вместо DATA_LENGTH 14.10.2018
  • Каким образом я буду использовать эту переменную? Также обратите внимание, что механизм хранения — MyRocks, который является относительно новым. 14.10.2018
  • Я бы не ожидал, что Макс... будет уместен. 3x — типичный коэффициент усадки текста; вы получаете 6x. InnoDB занимает на диске в 2-3 раза больше места, чем MyISAM; Я не знаю о MyRocks. 14.10.2018
  • Только что попробовал с max_data_length и результат даже меньше, чем data_length, так что для меня это не имеет большего смысла. 15.10.2018
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..