2012-04-24 21 views
7

için INFORMATION_SCHEMA ama InnoDB için MyISAM ancak sadece benim information_schema veritabanı BELLEK olmayan tablolar için MyISAM kullandığı fark ettim.MySQL veritabanı motoru: Şu anda MySQL tüm veritabanları için InnoDB kullanıyorum diğer veritabanları

Bir InnoDB'nin/MyISAM konuyu araştırıyoruz sürecinde duyuyorum. Bunun bunun sebebi olduğunu düşünmemekle birlikte, bu karıştırma konusunda endişeleniyorum. Veri tabanı başlangıçta MyISAM ile kuruldu. Daha sonra my.cnf dosyası, motoru InnoDB'ye sıfırlamak için güncellendi. MySQL 5.5.10 kullanıyorum.

Information_schema veritabanınızın MyISAM olarak ayarlanmasıyla oluşabilecek olası sorunlar nelerdir, ancak diğer tüm veritabanlarınız MySQL olarak ayarlanmış mı? bir cevap arayışında bu soruya rastladım ya da varsayılan veritabanı motorunu görmek, daha fazla bilgi edinmek isterseniz::

show variables; 

için yardım arayanlar için


bir veritabanında tablolar atanan motoru bkz:

show table status; 

Benim my.cnf ayarlarını:

[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 

cevap

4

Kullanılan depolama altyapısı tablo bazındadır. Yeni bir tablo oluştururken varsayılan depolama motoru kullanılır ve yeni tablo için bir depolama motoru belirtmezsiniz.

sistem tabloları

olursa olsun varsayılan depolama motorunu ayarlamak ne MyISAM olurdu. MySQL documentation itibaren

: mysql veritabanında

Önemli

dönüştürmeyin MySQL sistem tabloları InnoDB'nin türüne (örneğin kullanıcı veya ev sahibi olarak). Bu desteklenmeyen bir işlemdir. sistem tabloları daima MyISAM tipinde olmalıdır. doğrudan information_schema tabloları sorgulama değilseniz

, türlerini karıştırma hakkında hiç endişe yoktur.

İlgili konular