Bir web sitesi için SQL veritabanı depolama alternatifleri nelerdir?

15 Cevap php

Depolama ihtiyaçları küçük ise bir SQL veritabanı overkill. Ben genç ve aptal iken, ben erişmek için gerektiğinde bunu ed () Bir metin dosyası ve akın kullanılır. Bu ölçek değildir, ama yine de olmayan veritabanı çözümleri tamamen Web 2.0 ihmal edilmiş hissediyorum.

Herkes not depolama için bir SQL veritabanı kullanıyor mu? Alternatifleri nelerdir?

15 Cevap

Alternatif bir yeri vardır. Ama sana dosya tabanlı depolama hiçbir yaygara ile birlikte SQL güç verir SQLite'ı sahip, bu alternatifler aramaya gerek yoktur. SQLite cep telefonları ve MP3 çalarlarda kullanılmak üzere yeterli ışık olduğunu, bu yüzden bir overkill düşünülebilir nasıl görmüyorum.

Uygulama çok özel bir şeye ihtiyacı sürece Yani, zahmet etmeyin. Çoğu alternatifleri kullanmak çok daha zor ve daha az performansa sahip.

SQLite Bunun için icat edilmiştir.

Bu tam bir SQL veritabanı içeren bir düz dosya bulunuyor. Sen, sorgulamak güncelleme, insert, silme, kurulum hiçbir havai az var ve tüm ihtiyacınız (PHP standart geliyor) sürücüsü olabilir

SQLite kendine yeten, sunucusuz, sıfır yapılandırma, işlem SQL veritabanı motoru gerçekleyen bir yazılım kütüphanesi.

Garip kimse zaten bu belirttiğimiz?

CouchDB (http://couchdb.apache.org/index.html) olmayan bir sql veritabanı, ve çevresinde olmuştur ki (http://sourceforge.net/projects/fis-gtm) yanı sıra Google'ın BigTable veya GT.M, bu günlerde popüler bir proje olacak gibi görünüyor Sonsuza kadar.

Nesne veritabanları de boldur; dbforobjects (http://www.db4o.com/), ZODB (http://www.zope.org/Products/StandaloneZODB), sadece birkaç isim.

Tüm bu sözde daha hızlı ve belirli kullanım durumları için geleneksel SQL veritabanları daha basit, ama hiçbiri düz bir dosyanın sadeliği yaklaşım.

google bigtable veya hadoop basit ve ölçeklenebilir olmayan SQL veritabanı ve genellikle bir SQL veritabanında daha web siteleri çok daha uygun gibi bir dağıtılmış karma tablo. SQL karmaşık ilişkisel veri için harika, ama en web siteleri bu gereksinimi yoktur. Çoğu web sitesi mağaza ve birkaç formlarda veri almak ve veri üzerinde karmaşık işlemleri çalıştırmak gerekmez.

Onlar size gereken ancak veri normalleştirme geleneksel fikirleri abone değilsiniz eşzamanlı erişim tüm sağlamak gibi biri bu çözümler bir göz atın. Onlar adlı metin dosyaları bir demet olarak oldukça benzer düşünülebilir.

Muhtemelen web sitesi ne kadar dinamik bağlıdır. Bu ve dışarı metin dosyaları kontrol etmek için RCS kullanılan bir kere ben wiki yazılımı kullanılmaktadır. Ben StackOverflow veya Wikipedia gibi birçok güncellemeleri alır bir şey için bu çözümü tavsiye etmem. Veritabanı hakkında bir şey onlar iyi ölçek olduğunu, ve veritabanı motoru yazarlar vb eşzamanlı erişim tüm keman küçük ayrıntıları, yük dengeleme, çoğaltma, anladım

Ben saklamak istedim ne kadar veri dayalı bir SQL veritabanı kullanmak isteyip tercih etmem - I what kind Ben kullanılacağı ne kadar saklamak istedim ve veri dayalı seçiyor.

Wikipeadia gibi bir veritabanı tanımlar: A database is a structured collection of records or data that is stored in a computer system. Eğer müşteri hesapları, erişim hakları ve böylece daha sonra böyle bir mySQL veya SQLite gibi DB ya da her neyse, overkill değil gibi kayıtları saklamak isterseniz: Ve ben cevap orada yatıyor düşünüyorum. Sana o kayıtları yönetmek için denenmiş ve güvenilir bir mekanizma verir.

Eğer, diğer taraftan, web sitesi depolayan ve bu PDF'leri, raporlar, mp3s ve böylece daha sonra sadece bir disk üzerinde iyi tanımlanmış bir dizin düzeni içinde saklayarak fazlasıyla yeterli olduğu gibi değişmeyen dosya tabanlı içerik sunar. Ben de burada XML belgeleri içerir: örneğin XML formatında bir web sitesi için yazılar oluşturulan bir üretim departmanı olsaydı DB onları koymak gerek yoktur - diskte saklayın ve onları teslim etmek XSLT kullanabilirsiniz.

Sizin SQL seçim ya da saklamak istediğiniz içeriğin geri alınacağını nasıl bağlıdır. Bir dizin ağacı, XML veritabanı, RDF veritabanı, vb tek kayıtları almak için kullanılacak ise büyük olasılıkla SQL Açıkçası arama kriterlerine dayalı birçok kayıtları almak için iyidir.

Yüksek trafik sitesi ölçekte çalışan ve SQL DB içine her şeyi doldurma hızlı bir darboğaz olacak zaman depolama mekanizmasının seçimi çok önemlidir.

Ben onu size depolanan veri isteğinde ne sıklıkta bağlıdır, daha az veya daha fazla bilgi saklamak olmasına bağlı olmadığını söyleyebilirim. Databasemanagers önbelleğe alma sorgularda süper, bu yüzden sık sık akıllıca daha iyi bir seçim performans vardır. Eğer dinamik bir web sayfası gerekmez ve sadece statik verileri yüklüyorsanız nasıl bugüne kadar, - belki bir metin dosyası daha iyi bir seçenektir. Veriler (örneğin XML, JSON, anahtar = çifti) saklanır hangi format farketmez - bu performanslı ağır I / O operasyonları bulunuyor.

Ben web uygulamaları geliştirmeye devam ediyorum, ben her zaman birincil veri sahibi olarak bir RDBMS'yi kullanın. Web uygulaması her istek dinamik veri hizmet etmek gerek yoksa, ben sadece yeni veriler birincil veri kaynağı (RDBMS) ilave edildiğinde istenen alır bir önbellek dosyasında veri depolama önbellek işlevi uygulayın.

Bu saklamak ne bağlıdır. Her entry ayrı bir metin dosyası nerede benim blog (Perl ile yazılmış ama benzer bir şey PHP için yapılabilir) Blosxom kullanır. İlk satır düz metin (başlık) ve geri kalanı sınırsız HTML. Birkaç basit kurallara ardından, bu basit ama etkili bir blog çerçeve oluşturmak için işlenir.

Bu sakıncaları var ama o da her mesaja bir yerel makine üzerinde güncelleme ve daha sonra uzak bir web sunucusuna yayımlamak için iyi çalışan bir ayrık dosyası olduğu anlamına gelir. Bu olsa etkili sorgulama gelince kısıtlı, bu yüzden kesinlikle iyi bir seçim sizin verilerle ince taneli kontrolü ve web tabanlı etkileşim istiyorsanız.

Giriş CouchDB.

Ben bir. NET projesinin bir veri kaynağı olarak XML LINQ to kullandık. Bu küçük bir çözüm oldu, ve performans kaygıları azaltmak için önbelleğe kullanılır. Ben sadece sunucu gereksinimleri artırmadan ortak bir yerde veri tutmak için gereken hızlı site için yine yapacağını.

Thats de bence. Basit şeyler için veritabanı gerek yoktur. Senin soru belirtildiği gibi 'salt okunur' veri metin dosyaları (CVS veya XML) için kullanıyorum. Bazen yerine düz metin SQLite kullanmak fayda sağlayabilir rağmen (yarar kolay sorguları).

Bu uçucu verilerin çoğu için session store kullanabilirsiniz (normalde sql veritabanında saklanır) ya da sadece hafızada (memcached) bunları saklamak için çok zor değil!

Ben persistenly yazılması için bazı verilere ihtiyaç olduğunda noktada ben bir veritabanı kullanmak - Bir hayat daha kolay bir sürü yapar.

Eğer saklıyorsanız bağlıdır ve buna erişmek için gereken ne. Genellikle sql büyük raporlama ve manuel yönetim olanağı sağlar. Hemen hemen her şeyi saklanan ne yönetmek ve bu rapor için bir yol ihtiyacı vardır.

Perl böyle görevler için DBM veya depolanabilir kullanın. Değişkeni güncellenir zaman DBM otomatik olarak güncellenir.

Temelde tablolar ve indeksler ama hiçbir SQL ve tablolar arasında açık bir ilişki - aşağı SQL veritabanları Tek seviye bir ISAM (Sıralı Erişim Yöntemi) olduğunu. Sürece kavramsal temel tasarım uygun olarak, o güzel dönüşebilecek. I Codebase etkili, uzun bir süre kullandım.

SQL veritabanı-tip veri ile çalışmak istiyorsanız, o zaman düşünün FileMaker.

Senin yerinde olsam XML kontrol. Sol tarafta w3schools XML öğretici bölümüne bakın. SQL veritabanı kullanmadan olanakları ton.