mercoledì 14 settembre 2011

File lbdata1 di Mysql


Quando si usa lo storage engine di MySql InnoDb (che ricordiamo è lo SE che consente il supporto da parte di MySql delle transazioni ACID) le impostazioni di default prevedono che tutti i dati delle tabelle siano salvati su questo file lbdata1.
Per trovare il file bisogna andare sulla datadir di Mysql, che possiamo cercare così:


mysql> show variables like '%datadir%'\G
*************************** 1. row ***************************
Variable_name: datadir
        Value: C:\Documents and Settings\All Users\Dati applicazioni\MySQL\MySQL Server 5.5\Data\
1 row in set (0.00 sec)
 










Nella data_dir ci sono tante directory quanti sono i database presenti sul server.
Per i database che utilizzano innodb come storage engine all’interno delle directory del db di default sono presenti i file .frm con le informazioni sulla struttura delle tabelle, a livello della datadir è invece presente il file lbdata1 che contiene sia i dati che gli indici delle tabelle.

La crescita incontrollata di dimensioni del file può portare a problemi di gestione da parte del sistema operativo.
E’ possibile disabilitare questa impostazione e fare in modo che i file siano generati per ogni tabella.
Per fare ciò è sufficiente modificare il  file my.ini presente sotto

[DIR_INSTALLAZIONE_MYSQL]\MySQL\MySQL Server 5.5

Inserendo nella sezione [mysqld] la variabile innodb_file_per_table

[mysqld]

# The TCP/IP Port the MySQL Server will listen on
port=3306

innodb_file_per_table
 



In questo modo tutte le nuove tabelle create saranno salvate all’interno della directory specifica del database una per ogni tabella.
I file specifici hanno l’estensione .ibd.


Nessun commento:

Posta un commento