При сравнении размеров таблиц Mysql и Postgres мы обнаружили, что:
Размер таблицы Postgre (4758390 строк) (vanilla postgres): 1402 МБ
Длина данных = 1063 МБ Длина индекса = 339 МБ
Размер таблицы Mysql (4758390 строк) (с Inno DB): 1056 МБ
Длина данных = 845 МБ Длина индекса = 211 МБ
Таблицы имеют следующую схему: - Схема: -
MySQL
int (11)
varchar (15)
datetime
float
float < br> float
float
float
double
double
double
float
longtext
double
double
int (11)
double
float
int (11)
int (11)
float
int (11)
int (11)
int (11)
int (11)
varchar (50)
int (11)
int (11)
int (11)
Postgres
серийный номер
varchar
метка времени
двойная точность
двойная точность
двойная точность
двойная точность
двойная точность
числовой < br> числовой
числовой
двойной точностью
varchar
числовым
числовым
двойной точностью
числовым
двойной точностью
целым числом
целым числом
двойным точность
целое число
целое число
целое число
целое число
varchar
целое число
целое число
целое число
Для расчета размеров таблиц используются следующие запросы: -
MySQL
SELECT table_name AS `Table`,data_length, index_length,
round(((data_length + index_length) / 1024 / 1024), 2) `Size in MB`
FROM information_schema.TABLES
WHERE table_schema = "DB_NAME
AND table_name = "TABLE_NAME";
Postgres
SELECT pg_size_pretty(pg_total_relation_size('TABLE_NAME'));
Изменить: -
Индексы в MySQL: Размер
(varchar (15), datetime) -> 133 МБ
(datetime) -> 78 МБ
Индексы в Postgres: Размер
(varchar, timestamp) -> 339 МБ
Я новичок в базах данных и задаюсь вопросом, как это возможно.
pageinspect
, чтобы увидеть подробности.ctid
каждой строки содержит номер блока, так что вы можете быстро подсчитать количество строк на блок. Прочтите все о макете страницы базы данных. - person Laurenz Albe   schedule 21.02.2020