2012-09-16 14 views

cevap

8

"iyi" bir şey ifade etmiyor. Kısıtlamalarınızı ifade etmeniz gerekiyor: tutarlılığa ihtiyacınız var mı? Dayanıklılık? Yüksek kullanılabilirlik? Performans? Bütün bu özelliklerin bir kombinasyonu? Seanslarını kaybetmeyi başarabilir misin? Hafıza sığar mı? Aynı verilere eşzamanlı erişimi desteklemeniz gerekiyor mu?

Daha fazla bağlam olmadan, en dengeli depolama motoru olan InnoDB'yi tercih ederim. OLTP uygulamaları, ACID işlemleri, iyi güvenilirlik ve makul eşzamanlılık yönetimi için doğru performans sağlar. Oturum değişkenleri erişimi muhtemelen birincil anahtarlar kullanılarak yapılacak ve bu işlem InnoDB ile çok verimli.

Eğer performans gerçekten bir kısıtlama ise, bir NoSQL motoru kullanmayı tercih ederim (yani MySQL değil). Seans verilerini saklamak için, Redis genellikle çok iyi bir iş yapar ve entegrasyonu ve dağıtımı için yeterince kolaydır.

MyISAM en yaygın (birçok hosting paketleri sadece MyISAM kullanmasına izin) 'dir:

+0

Mükemmel cevap. –

1

Bellek depolama motoru en iyi seçenek olarak geliyor. Bunun geçici oturumlar için iyi olduğunu unutmayın.

http://dev.mysql.com/doc/refman/5.0/en/memory-storage-engine.html

+0

Motor diske veri yazamadıkça ve sunucular bellek paylaşmadığından yük dengeleyicimiz varsa bu sorun olmaz mı? Ayrıca, sunucu çökerse veya yeniden başlatılırsa tüm verilerimi kaybederim? – qwertymk

0

Size "betterness" değerlendirmek bağlıdır. artı ilişki kontrol yönü oldukça sınırlı, bu yüzden gerçekten hızlı ve kolay bir şekilde ayarlayın. Birden fazla barındırma senaryosunda taşınabilirlik ve hızlı uygulama yapmak istiyorsanız, MYISAM IS BEST.

InnoDB, farklı tablolardaki anahtarları birbirine bağlayarak ilişkiler ve kaydetme verileri bütünlüğünü oluşturmanıza olanak sağlar, bu da daha çok iş anlamına gelir ancak daha profesyonel db tasarımı anlamına gelir. Birçok hosting paketi, InnoDB'yi uygulamamaktadır, bu nedenle tablo yapısını bir ortamdan diğerine ihraç ederken, yapmanız gereken bazı ekstra işleriniz olabilir. Reaktif yönetim ve kontrol istiyorsanız, INNODB BEST IS.

Veri taşınabilirliği söz konusu olduğunda, bir InnoDB veritabanı MyISAM tarafından tamamen kabul edilecektir (çünkü MyISAM veri bütünlüğünü kontrol etmez: "user_car'a yeni bir kayıt eklediğimde kullanıcı veritabanında kullanıcı numarası 4 var mı, Örneğin"). MyISAM ile başlarsanız, tam teşekküllü bir InnoDB veritabanına dışa aktarma bir kabus olacaktır, verileriniz tüm anahtarlara sahip olsa bile, tablo verileri doğru sırada (kullanıcı ve araç, user_car'dan önce) alınmalıdır.

MariaDB? Asla, sadece daha az insanın kullandığı için, MyISAM ve InnoDB'ye kıyasla daha az desteğe sahip olacaksınız.

Alt satır katlayıcı: INNODB.

+3

Neden MariaDB asla? – qwertymk

+1

Eğer Maria'yı şiddetle tavsiye etmiyorsanız, bunun nedenini söylemeye değer olabilir - aksi halde bu cümle çok kullanışlı değildir! Gönderinizi düzenler ve bu noktada genişler misiniz? – halfer

+0

@quertymk ve halfer, isteklerinizi takip etti ve düzenledi. teşekkürler! :) –

İlgili konular