Большой размер строки InnoDB по сравнению с MyIsam - PullRequest
1 голос
/ 25 сентября 2010

У меня есть таблица для столбцов, smallint, целое число и два числа с плавающей запятой.Ожидаемая память для каждой строки составляет 14 байтов (2 + 4 + 2 * 4).У меня в таблице около 700 000 строк.Я не установил первичные ключи и индексы.В то время как тип MyIsam занимает около 10 МБ (в среднем 15 байт для каждой строки), тип InnoDB занимает более 30 МБ (в среднем 44 б).Что мне здесь не хватает?Будет ли InnoDB иметь слишком много накладных расходов для каждой строки или номер статуса таблицы не заслуживает доверия.Мне нужно хранить данные в гигабайтах, поэтому нужно определиться с типом хранилища, взвесив различные параметры.

1 Ответ

0 голосов
/ 25 сентября 2010

Таблицы InnoDB занимают больше места по сравнению с MyISAM.Независимо от того, будет ли компромисс между использованием хранилища и функциями, предлагаемыми InnoDB (защита от сбоев, транзакции и внешние ключи), благоприятствовать InnoDB, вам придется решить.Переключившись с MyISAM на InnoDB, я не вернусь.

Стоит отметить, что если вы собираетесь использовать InnoDB, вам определенно потребуется определить первичный ключ (и в идеале короткий).один).Это связано с тем, как InnoDB ведет себя с хранилищем и другими индексами.См. эту страницу .

...