Bir InnoDB veritabanı ile yayınlanmadan önce ne bilmeliyim?


10

Bir sunucu veya DB yöneticisi, bir InnoDB veritabanını kullanılabilir hale getirmeden önce ne bilmeli ve yapmalıdır.

Ben doğru değerler ayarlayarak gibi şeyler düşünüyorum innodb_buffer_pool_sizeveinnodb_log_file_size

Peki, veritabanını kullanan uygulamanın en az o kadar iyi çalışmasına neden olacak şekilde yapılandırmayı unutabilirsiniz.

Yanıtlar:


14

Başlamadan önce düşünmeniz gereken bazı yapılandırma seçenekleri vardır.

Myisam'ı hiç kullanmadığınız sürece, belleğinizin neredeyse tamamını güvenli bir şekilde tahsis edebilirsiniz (işletim sisteminizin rahatça çalışmasını sağlayacak kadar ve sizin için yeterli olanı saklayabilirsiniz max_connections) innodb_buffer_pool. InnoDB ile ilgili güzel bir şey, neredeyse tüm bellek öğelerini tek başına ele alması, sorgu önbellekleri, anahtar arabellekleri vb.

innodb_file_per_tableYalnızca dosya sistemine göz atmayı ve farklı tabloların ve veritabanlarının ne kadar alana ihtiyaç duyduğunu görmeyi çok kolaylaştırdığı için etkinleştirmenizi öneririm . InnoDB dahili kullanımı için yine de genel bir ibdata dosyasına ihtiyacınız olacak, ancak sadece olarak tanımlayabilirsiniz 10M:autoextend. Önceden ayrılmış boyutlarda birçok farklı innodb veri dosyası tanımlamanıza gerek yoktur.

innodb_log_file_sizeve innodb_log_buffer_sizeçok fazla büyük nesneniz varsa kombine en büyük blob nesneniz on kat daha büyük olmalıdır. Eğer yapmazsanız (ve [ 1 , 2 ] yapmamalısınız ), onunla çok fazla uğraşmanıza gerek yoktur. Kontrol MySQL Performans Blog nasıl hesaplanacağını hakkında ayrıntılı bir rapor için.

MySQL'inizi bir süre çalıştırdığınızda, ayarlarınızı MySQLTuner veya MySQL Tuning Primer ile kontrol edin .

Daha ayrıntılı bir rapor için mysqlreport'u deneyin ve canlı izleme için mytop'u kontrol edin .


İnnodb_file_per_table hakkında hatırlanması gereken bir şey, disk alanını kurtarmak için kullanılan yöntemlerin farklı olmasıdır. İbdata dosyalarıyla tablolarınızın sonunu silerek tablo alanındaki alanı kurtarabilirsiniz. Tek tek tablo dosyalarının alanı silinerek kurtarılamazsa, dosya sistemine alan döndürmek için tabloyu en iyi duruma getirme tablosuyla yeniden oluşturulmalıdır. Optimize tabloyu kilitler ve böylece uygulamanızda çalışmama süresine neden olabilir.
mtinberg

2

Bana göre küçük bir "sürpriz", innodb'un varsayılan olarak tüm veritabanları / tablolar için bir dosya kullanmasıydı. Veritabanı başına bir dizin ve tablo / tableindex başına dosyalar kullanan MyISAM tablolarının aksine.

Fiziksel dosyaları tablo bazında küçültmeye alışkın olmanız önemli olabilir (xxx tablosunu optimize edin)

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.