InnoDB, hantera utrymme

From Linuxwiki
Jump to navigation Jump to search

Ta reda på hur mycket som är ledigt

mysql> show table status from <databas> like 'innodbfree'\G

Exempel:
mysql> show table status from innodbtest like 'innodbfree'\G
*************************** 1. row ***************************
           Name: innodbfree
         Engine: InnoDB
        Version: 10
     Row_format: Compact
           Rows: 0
 Avg_row_length: 0
    Data_length: 16384
Max_data_length: 0
   Index_length: 0
      Data_free: 24576
 Auto_increment: NULL
    Create_time: 2008-06-03 14:58:13
    Update_time: NULL
     Check_time: NULL
      Collation: latin1_swedish_ci
       Checksum: NULL
 Create_options: 
        Comment: 
1 row in set (0.01 sec)

Data_free är summan av ledigt utrymme.

Skapa utrymme via my.cnf

För att markera hur mycket minne som innodb får använda lägger man till följande i my.cnf

innodb_data_home_dir = /var/lib/mysql/ Vart innodb-filen placeras
innodb_data_file_path = ibdata1:10M Storlek på denna.

Börjar det bli fullt lägger man till ännu en ibdata-fil:

innodb_data_file_path = ibdata1:10M;ibdata2:10M Lägg märke till Semikolonet

Man kan även använda autoextend:

innodb_data_file_path = ibdata1:10M:autoextend

Det går även att lägga till autoextend om man har flera ibdata-filer:

innodb_data_file_path = ibdata1:10M;ibdata2:10M:autoextend

Automatisk utökning sker då av den senaste ibdatafilen.

Omstart

Glöm inte omstart av MySQL för att detta ska gälla.