Structured Query Language (SQL) veritabanları, büyük çaplı veya daha küçük çaplı projelerinizde sizlere yardımcı olur. Birçok farklı eksende ilişkisel verileri sorgulamak için sizlere yüksek performanslı bir yol sağlar.
Avantajı olduğu gibi ölçeklenemiyor olması da SQL veritabanlarının dezavantajlarından bir tanesidir. Bu nedenle çoğu şirket sonunda kendilerini SQL çözümlerinden NoSQL alternatiflerine geçerken bulur. Peki neden SQL veritabanları ölçeklenemiyor ?
Foreign Keys
SQL veritabanları, verileri bağlamak için yapılandırılmış verilere ve yabancı anahtarlara güvenir. Bu, verileri yönetmenin son derece performanslı bir yoludur. SELECT ve JOIN anahtar sorgu sözcükleri kullanılarak tüm veritabanındaki verileri basit sorgularla bağlamanıza olanak tanır.
Bir veritabanının verilere bu şekilde katılması için her iki tabloya da erişmesi gerekir. Yukarıdaki örnekte Müşteriler ve Siparişler tablosunun her ikisi de tek bir veritabanında depolanmıştır.
Verilerimizi her zaman bu şekilde saklayıp, her şeyi tek bir veritabanından sorgulayabilseydik, asla bir sorunumuz olmazdı ama yapamayız.
Veritabanı Limiti
Verilerimizi her zaman tek bir veritabanında depolayamayız çünkü tek bir ana bilgisayarın belleğini ve disk alanının da sınırları vardır. Bir veritabanı tüm veri setini belleğe sığdırabiliyorsa bu son derece de performanslı olur. Eğer sığdıramıyorsa performans disk hızı ile sınırlandırılabilir.
SQL veritabanlarını ölçeklendirmeyle ilgili birincil sorun budur, peki alternatif nedir?
NoSQL Databases
NoSQL veritabanları, verileri birden çok ana bilgisayarda depolayabilmeleri için yabancı anahtarların/birleştirmelerin basitliğini ve performansını feda eder. Bu, hızlı erişim ve tek bir ana bilgisayarın sınırlarının çok ötesine ölçekleme için bellekte depolamadan yararlanmaya devam edebilecekleri anlamına gelir.
Bu, herhangi bir ilgili veriyi birleştirmesi gerektiğinden, veritabanını sorgulayan yazılımda ekstra karmaşıklık ile birlikte gelir. Performansı ve depolamayı tek bir ana bilgisayarınkiyle sınırlamadan milyarlarca müşteriye ölçeklendirmeniz gerekiyorsa, genellikle bu değerli bir takastır.
Özet
Yabancı Anahtarlar, SQL veritabanlarının bu kadar performanslı ve kullanımı kolay olmasının yanı sıra ölçeklenmemelerinin nedenidir. Tek bir ana bilgisayarın sağlayabileceğinden daha iyi performansa ve/veya daha fazla veri depolamaya ihtiyacınız varsa, geleneksel SQL yaklaşımı yerine NoSQL veritabanlarını kullanmayı düşünmelisiniz.
Bu yazı Ben Brazier tarafından yazılmış olup kaynak alınarak türkçeye çevrilmiştir. Yazının orjinaline bu link üzerinden ulaşabilirsiniz.