IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes MySQL Discussion :

taille de table innodb


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de jp_rennes
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Mars 2006
    Messages : 72
    Par défaut taille de table innodb
    Quand je fais un
    mysql> show table status\G
    j'obtiens pour l'une de mes tables
    *************************** 7. row ***************************
    Name: Spectacle
    Engine: InnoDB
    Version: 10
    Row_format: Compact
    Rows: 9583
    Avg_row_length: 275
    Data_length: 2637824
    Max_data_length: 0
    Index_length: 1769472
    Data_free: 0
    Auto_increment: NULL
    Create_time: 2006-09-22 08:17:22
    Update_time: NULL
    Check_time: NULL
    Collation: latin1_swedish_ci
    Checksum: NULL
    Create_options:
    Comment: InnoDB free: 4096 kB; (`codeSallePJ`) REFER `ved_spectacle/SallePJ`(`codeSallePJ

    Et pourtant sous linux (sachant que j'ai activé l'option innodb_file_per_table dans le my.cnf) :
    ls -ltr Spectacle*
    -rw-rw---- 1 mysql mysql 13184 sep 22 08:16 Spectacle.frm
    -rw-rw---- 1 mysql mysql 12582912 sep 22 08:17 Spectacle.ibd

    questions :
    1) comment se fait-il que sur disque ma table fait 12Mo alors que le status me donne 4,4 Mo (en ajoutant la taille des données et celle de l'index) ?
    2) A quoi correspondant concrétement le InnoDB free: 4096 kB ?

    Merci

  2. #2
    Membre Expert Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Par défaut
    Bonjour,

    1) Le status te donne la taille pour une table. Si tu as un fichier tablespace InnoDB unique pour toutes tes tables, c'est normal qu'il soit plus gros. Si Innodb_file_per_table est activé, ça peut être normal aussi étant donné que les fichiers tablespace prennent tout l'espace qui leur est alloué sans se limiter à la taille réelle des données

    2) C'est l'espace libre (non occupé par des données) dans le fichier tablespace.

  3. #3
    Membre éclairé Avatar de jp_rennes
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Mars 2006
    Messages : 72
    Par défaut
    merci pour ta réponse
    Je travaille bien avec Innodb_file_per_table
    1 suite) nulle part dans mon my.cnf je n'ai spécifié de taille de fichier de données. Comment définit-il cette taille ?
    2 suite )ok, il reste 4096 ko de libre dans le tablespace, mais quand de nouvelles données sont insérées dans la table, il agrandit le tablespace tout seul d'une certaine valeur ? (dans mon my.cnf je n'ai rien spécifié de tel .....

    mon my.cnf :
    [mysqld]
    # Trace des requetes longues
    log_slow_queries
    long_query_time = 2
    log_long_format

    # Par defaut les tables sont crees de type innodb
    default-table-type=innodb

    # Memoire dediee aux utilisateurs de la base
    # Tampon de traitement
    # jointures sans index
    join_buffer_size=500000
    # jointures avec index
    net_buffer_length=50000
    # lectures séquentielles
    read_buffer_size=500000
    # Chargements
    bulk_insert_buffer_size=15000000

    # Tampon de tri
    sort_buffer_size=5000000

    # Memoire partagée
    # Cache des requêtes
    query_cache_size=25M

    # Ouverture / Fermeture des tables par MySQL
    table_cache=512
    max_tmp_tables=64

    # Configuration MyISAM
    # Cache des index pour les tables MyISAM
    key_buffer_size=50M

    # Reindexation des tables plus rapide
    myisam_sort_buffer_size=64M

    # Configuration innodb
    # buffer de donnees
    innodb_buffer_pool_size=400M

    # Buffer du dictionnaire de données
    innodb_additional_mem_pool_size=20M

    # un fichier par table
    innodb_file_per_table

    # buffer des fichiers de log
    innodb_log_buffer_size=60M

    # Tailles des journaux innodb
    innodb_log_file_size=250M

    # Divers
    # Le flush du buffer de log sur les fichiers de log ne se fera que lorsque le buffer sera plein
    innodb_flush_log_at_trx_commit=0

  4. #4
    Membre Expert Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Par défaut
    1) La doc est un bon endroit pour trouver ce genre de renseignements

    Sans innodb_file_per_table :
    Note: If you specify no InnoDB configuration options, MySQL creates an auto-extending 10MB data file named ibdata1 and two 5MB log files named ib_logfile0 and ib_logfile1 in the MySQL data directory.
    http://dev.mysql.com/doc/refman/5.0/...iguration.html

    Avec :
    Note that .ibd files are always single auto-extending files.

    So it's NEITHER possible to set an initial size for .ibd files NOR to set a maximum file size for them.
    http://dev.mysql.com/doc/refman/5.0/...blespaces.html (dans les user comments)

    2) Non, normalement le tablespace n'est pas agrandi tant qu'il n'est pas complètement rempli de données.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. forcer la création de tables InnoDB sur Free
    Par Eldarion dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 13/10/2005, 22h23
  2. [Access 2000] Taille des tables
    Par Marco_SAP dans le forum Access
    Réponses: 15
    Dernier message: 08/09/2005, 16h00
  3. Taille des Tables InnoDB
    Par Mehdi Feki dans le forum Outils
    Réponses: 2
    Dernier message: 29/08/2005, 10h21
  4. Table InnoDB par defaut
    Par rivierem dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 04/10/2004, 00h28
  5. SQL 2000 - Liste + taille des tables et index
    Par Fox dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 12/03/2004, 15h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo