Я пытаюсь получить место, которое занимает на диске таблица, использующая механизм хранения 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
, не соответствует фактическому размеру таблицы.
Итак, есть ли надежный способ получить размер таблицы? Я уже использую правильный способ получить размер таблицы?
MAX_DATA_LENGTH
вместоDATA_LENGTH
14.10.2018max_data_length
и результат даже меньше, чемdata_length
, так что для меня это не имеет большего смысла. 15.10.2018