При сравнении размеров таблиц Mysql и Postgres мы обнаружили, что:
Postgre Размер таблицы (4758390 строк) (ваниль postgres): 1402MB
Длина данных = 1063 МБ Длина индекса = 339 МБ
Mysql Размер таблицы (4758390 строк) (с Inno DB): 1056 МБ
Длина данных = 845 МБ Длина индекса = 211 МБ
Таблицы имеют следующую схему: - Схема: -
MySQL
int ( 11)
varchar (15)
datetime
float
float
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
метка времени
двойная точность
двойная точность
двойная точность
двойная точность
двойная точность
цифра c
цифра c
цифра c
двойная точность
варчар
цифра c
цифра c
двойная точность
число c
двойная точность
целое число
целое число
двойная точность
целое число
целое число
целое число
целое число
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, отметка времени) -> 339 МБ
Я новичок в базах данных, и мне интересно, как это возможно.