MySQL Dosya Veritabanı vs

8 Cevap php

Yani PHP bir ev yapımı blog sistemi üzerinde çalışıyor gidiyorum ve veri depolama hangi yolu merak hızlı. Ben MySQL yöne gidebiliriz, ya da dosyaları (JSON kodlanmış) tüm bilgileri depoluyor bunu yapmanın benim kendi küçük şekilde gidebiliriz.

Hangi yol, MySQL veya JSON dosyaları hızlı olurdu?

8 Cevap

Ben bir MySQL veritabanı seçsin - yönetmek daha kolay çünkü.

JSON gerçekten depolama için bir biçim değil, JavaScript'lere veri göndermek için. Eğer dosyalarındaki verileri saklamak istiyorsanız XML veya Serialized PHP (ben yerine JSON daha sonra ne olduğunu şüpheli olan) içine bakmak.

Küçük, tek bir kullanıcı veritabanı 'için, bir dosya sistemi büyük olasılıkla daha hızlı olacak - büyüklüğü ve karmaşıklığı arttıkça, MySQL veya SQL Server gibi bir veritabanı sunucusu yenmek zordur.

Ben kesinlikle bir DB seçeneği (arama ve dizin şeyler edebilmek gerekir gibi). Olur Ama bu tam olarak gerçekleşmiş ayrı DB hizmet gerekir anlamına gelmez.

MySQL is definitely the more scalable solution.
But the downside is you need to set up and maintain a separate service.

Öte yandan, dosya tabanlı ve hala (SQLite SQLite.org) akla atlar standart SQL ile erişim vermek DBs vardır. Sen SQL avantajları olsun ama ayrı bir hizmet sağlamak gerekmez. Dezavantajı olarak ölçeklenebilir olmamasıdır.

Bu çok doğrudan cevap vermezse beni affedin, ama o yana bir homecooked blog sistemi vakit hızlıdır şu anda ne depolama backend düşünmeye değer gerçekten?

Öngörülebilir gelecekte herhangi maningful derecede ölçek gerekir gibi her gün 1 10.000 eşzamanlı kullanıcılar bakıyor gitmiyorsun, o gelmiyor.

Neden sadece mantıklı bir seçim yerine hızlı bir biri olarak MySQL sopa ile değil? Eğer gerçekten yerine üzerinde hız için belki cıvata sqlite tasarlanmış bazı anlamda istiyorum.

Eğer bir karmaşık ilişkisel yapısı için ihtiyaç olmayabilir düşünüyor beri, bu orta aşağı bir şey daha denemek için eğlenceli bir fırsat olabilir.

CouchDB, bir belge tabanlı, şema ücretsiz veritabanı (henüz hala dizinlenebilir) olduğunu kontrol edin. Veritabanı adı alanları (anahtar-değer çiftleri düşünüyorum) içeren belgelerin yapılır.

Eğlenin ....

Ben kesin bilmiyorum ama, bu veri miktarı büyük ve daha büyük olur, özellikle de bir MySQL veritabanı çok daha hızlı olurdu gibi geliyor bana.

Eğer ezSQL gibi bir soyutlama sınıfını kullanmak, özellikle de, PHP ile MySQL kullanılarak, süper kolaydır. ezSQL gerçekten basit bir veritabanı ile çalışma yapar ve ben size ev demlenmiş JSON yönünü giderek kendiniz için daha fazla gereksiz iş yaratmak olacağını düşünüyorum.

Ben de yaptım. Ben karmaşık sorunlar için çok basit sorunlar ve veritabanları için dosyaları gibi.

Dosya çözümler için, içerik artar sayısı olarak bu sorunlar göz önünde bulundurun:

Hatta küçük dosyalar bütün blok kullanın çünkü 1) Çok daha fazla disk alanı, beklediğinizden daha kullanılır. Bloklar büyük sürücüleri destekleyen dosya sistemleri üzerinde oldukça büyük.

Bir dizindeki dosyaların sayısı çok büyük aldığında 2) Çoğu dosya sistemleri çok yavaş olsun. Bu benim çözüm (dosyaların isimlerini varsayarak makul alfabenin genelinde yayılmış) dosya adının ilk iki harfinden oluşan bir dizin yaratmak için olduğunu. Böylece, dosya, "animal.txt" bir / animal.txt bulunabilir olacaktır. Bu şaşırtıcı derecede iyi çalışıyor. Dosya adlarınız makul değilse dizinleri oluşturmak için müzakere fonksiyonunun çeşit kullanmak, alfabenin iyi dağıtılmış. Biraz çılgınca geliyor, ama bu çok, çok iyi çalışabilir, ve ben on binlerce dosya ile çok hızlı çözümler için kullandım.

Ama dosya çözümleri gerçekten sadece bazen uygun. Dosya ile gitmek için harika bir neden yoksa, bir veritabanı kullanın.

Bu gerçekten harika. Bu sorguları http://www.fsql.org/index.php ile düz bir dosya veritabanı denetleyen bir PHP sınıfı bulunuyor

Bloglar genellikle sadece statik içerik var çünkü bloglar için, ben sayfaları önbelleğe öneririz. Bu şekilde, sorguları sadece bir kez önbelleğe alma sırasında ezilirsin. Yeni bir blog yazısı eklendiğinde size önbelleğe alınmış sayfaları güncelleyebilirsiniz.