У меня есть таблица с столбцами, smallint, целым числом и двумя числами с плавающей запятой. Ожидаемая память для каждой строки составляет 14 байтов (2 + 4 + 2 * 4). В моей таблице около 700 000 строк. Я не установил первичных ключей и индексов. В то время как тип MyIsam занимает около 10 МБ (в среднем 15 МБ для каждой строки), тип InnoDB занимает более 30 МБ (в среднем 44 ГБ). Что мне здесь не хватает? Будет ли у InnoDB так много накладных расходов для каждой строки, или номеру статуса таблицы нельзя доверять. Мне нужно хранить данные, которые будут работать в ГБ, поэтому нужно выбрать тип хранилища, взвесив различные параметры.
Размер строки InnoDB большой по сравнению с MyIsam
Ответы (1)
Таблицы InnoDB занимают больше места по сравнению с MyISAM. Вы должны решить, благоприятствует ли InnoDB компромисс между использованием хранилища и функциями, предлагаемыми InnoDB (безопасность при сбоях, транзакции и внешние ключи). Перейдя с MyISAM на InnoDB, я бы не вернулся.
Стоит отметить, что если вы собираетесь использовать InnoDB, вам обязательно нужно определить первичный ключ (и в идеале короткий). Это связано с тем, как InnoDB ведет себя по отношению к хранилищу и другим индексам. См. эту страницу.
person
Hammerite
schedule
25.09.2010
Да, это отвечает на мой вопрос вместе с этим stackoverflow.com/ questions / 2914492 /
- person Grungean; 26.09.2010