Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

O InnoDB tem tabelas estáticas?


O InnoDB tem linhas de largura fixa e pode haver alguma vantagem em declarar todas as colunas em uma tabela como largura fixa. O principal benefício é que todos os "buracos" em uma página podem ser reutilizados para qualquer inserção, pois todas as linhas têm o mesmo comprimento. Isso torna a reutilização do espaço um pouco mais eficiente. Eu não tentaria forçar a largura fixa para nenhuma string em algumas dezenas de bytes, pois o custo de armazenar os dados extras por página (e, portanto, menos linhas por página) sobrecarregaria rapidamente qualquer economia/ganho que você obteria de mais reutilização eficiente do espaço.

No entanto, ter linhas de largura fixa não permitir qualquer otimização de varredura de linha (como faz para MyISAM). O armazenamento de linha do InnoDB é sempre baseado em página e usa uma árvore B+ com listas de páginas duplamente vinculadas e registros vinculados individualmente em uma página. A travessia de linha está sempre usando essas estruturas e não pode ser feita de outra maneira.