2010-10-21 4 views
0

J'ai une table de base de données simple avec un surcoût de 170 Mo.Optimiser la base de données InnoDB

Est-ce quelque chose dont j'ai besoin de s'inquiéter? Quand j'exécute optimise dessus, ça me dit qu'innodb ne supporte pas l'optimisation et donc recrée la table mais a encore un surcoût de 170 Mo.

Est-ce quelque chose que je peux confortablement ignorer?

bravo!

+1

S'il vous plaît la taille fournissent non-frais généraux pour mettre les frais généraux par rapport. –

+0

Salut, C'est seulement une base de données de 66mb. – Mikee

+0

Pour élaborer, c'est une base de données avec 1.6millions de lignes, mais il n'y a que 4 colonnes. La clé primaire, un unique varchar (8), et deux non signé int (10) de – Mikee

Répondre

1

Il y a beaucoup de conseils des ordures autour quand optimiser les tables. Si par 'overhead' vous voulez dire espace libre, gardez à l'esprit que InnoDB laisse naturellement les pages sur 93% de remplissage (15/16) pour laisser des trous pour les mises à jour ultérieures.

Lorsque vous optimisez des tables, elles ne les recréent pas de manière optimale. Il recrée la définition de la table et copie ensuite les données dans chaque ligne. Les index de clé primaire ne sont pas fragmentés de cette façon - mais les clés secondaires peuvent l'être (puisqu'elles peuvent être insérées dans le désordre provoquant des fragmentations de pages/fragmentation dès le premier jour).

Baron écrit un bon post sur ce ici: http://www.xaprb.com/blog/2010/02/07/how-often-should-you-use-optimize-table/

0

Est-ce quelque chose que je peux confortablement ignorer?

Cela dépend. Si tout est en RAM, c'est bon.

Quel moteur utilisez-vous? mysql> show create table nom_table; InnoDB supporte l'optimisation de la table.

Mysql 5.1 prend en charge InnoDB optimiser: http://dev.mysql.com/doc/refman/5.1/en/optimize-table.html

Mysql 5.0 InnoDB supporte optimize: http://dev.mysql.com/doc/refman/5.0/en/optimize-table.html

MySQL 4.1 InnoDB supporte optimize: http://dev.mysql.com/doc/refman/4.1/en/optimize-table.html

+0

Il ne supporte pas vraiment OPTIMIZE. Il recrée une table temporaire et la remplit, ce qui a presque le même résultat. –

Questions connexes