2012-04-24 7 views
7

Attualmente sto utilizzando InnoDB per tutti i miei database in MySQL, tuttavia ho appena notato che il mio database information_schema utilizza MyISAM per le tabelle che non sono MEMORY.Motore di database MySQL: MyISAM per information_schema ma InnoDB per altri database

Sono in procinto di indagare su un problema InnoDB/MyISAM. Mentre non penso che questa sia la causa, sono preoccupato per questo mixaggio. Il database è stato originariamente impostato con MyISAM. Successivamente il file my.cnf è stato aggiornato per reimpostare il motore su InnoDB. Sto usando MySQL 5.5.10.

Quali sono i possibili problemi che potrebbero verificarsi quando il database information_schema è impostato su MyISAM, ma tutti gli altri database sono impostati su MySQL?


Per chi cerca aiuto: Se vi siete imbattuti in questa domanda in cerca di una risposta o se si vuole sapere di più, di vedere il vostro motore di database predefinito:

show variables; 

Per vedere il motore assegnato a tabelle di un database:

show table status; 

mia configurazione my.cnf:

[client] 
default-character-set=utf8 

[mysqld] 
log=/usr/local/var/mysql/mysqld.log 
character-set-server = utf8 
collation-server = utf8_general_ci 
lower_case_table_names=2 
default_storage_engine=InnoDB 

# Performance hacks: 
innodb_flush_method=nosync 
innodb_flush_log_at_trx_commit=0 

risposta

4

Il motore di archiviazione utilizzato è su una base per tabella. Il motore di archiviazione predefinito viene utilizzato durante la creazione di una nuova tabella e non si specifica un motore di archiviazione per la nuova tabella.

Le tabelle di sistema sarebbero state MyISAM indipendentemente da ciò a cui è stato impostato il motore di archiviazione predefinito.

Da MySQL documentation:

importanti

Non convertire le tabelle di sistema di MySQL nel database mysql (come utente o host) per il tipo di InnoDB. Questa è un'operazione non supportata. Le tabelle di sistema devono sempre essere del tipo MyISAM.

Se non si stanno interrogando direttamente le tabelle information_schema, non vi è alcuna preoccupazione nel mixare i tipi.