Ben bir tefrika nesnesini saklamak veya PHP / MySQL tabloları JOIN gerekir?

1 Cevap php

Şu anda kullanıcıya sıralama seçenekleri bir sürü veren bir site inşa ediyorum ve çok fazla baş ağrısı olmadan ölçeklendirilebilir bir şekilde inşa etmek istiyorum. Tabii ki bu tekniklerin hem ödünleşmeler vardır, ama id senin fikirlerini duymak istiyorum.

1) Tek bir sütunda bir tefrika json dizi saklayın. Yeni bir giriş eklendiğinde veya kaldırıldığında, json dizi yeniden kodlanmış ve DB güncellenen sonra manipüle edilir, çözülür. Veri dizi sıralama işlevleri kullanarak PHP'nin sitesinde kriteri olacağını, ya da bazı durumlarda MySQL'in "IN" kimlikleri bir listesine dayanarak kayıtları seçmek için kullanılır olacaktır.

Bu yaklaşım ile ana konu geliştirme zamanı artmış, ve bir köşeye kendimi kodlama riskini edilir. Json dize değişmesi gerekiyordu, ya da yeni bir özellik eklemek istiyorsanız, tam bir ağrı olabilir. Ben de her zaman seçilerek ve her bir kullanıcı için büyük bir json dize güncelleyerek, bu yük altında nasıl bir performans sergileyeceğini bilmiyorum.

2) her yeni giriş ve kullanıcı / girişine onların ilişkisi için bir ekleme yapma klasik RDBMS yöntemi. Sonra JOIN kullanarak seçin. Indeksleri dikkatle kurmak, ve her seçeneğini Optomized JOIN emin olmak için kullanılan olurdu İZAH olacaktır.

Uzak RDBMS hareketli hakkında konuşmak çok olmuştur. Ama bu konuşma, genellikle milyonlarca kullanıcı alıyorsanız sitelerinden geliyor. Bu konuda güzel bir şey geliştirme, hızlı olacak ve yeni veri gelecekte eklenecek gerekiyorsa, bu bir tabloyu değiştirmek için kolay olmasıdır.

Önce benim uygulama kodlama zaman ben bile ölçek endişesi olmalı? Ya ben erken serbest, ürüne odaklanmak ve ben gitmek gibi ölçek için çimdik gerekir?

Teşekkürler, ben sizin görüş için sabırsızlanıyoruz!

1 Cevap

Ben size yine uygulama optimize etmek ne ölçek için bilmiyorsanız, henüz bu konuda endişe etmemesi gerektiğini düşünüyorum.

Çözüm 1) çok güzel geliyor. Eğer gerçekten gibi olmayan bir ilişkisel veritabanı ile gitmeli böyle bir şey ile gitmek isterseniz CouchDB bunu hemen JSON saklar beri (Ben sadece bugün nice tutorial Bunun için bulundu) (ve sıralamak ve JavaScript tanımlanan İzlenim) ile seçebilirsiniz. (Gerçekten çok kolay terazi olsa) milyonlarca kullanıcıya sahip siteler için değil sadece. Sadece tüm "buzz" ve onun çevresinde, anti-"buzz" ilgili değil kendiniz deneyin ve bu uygulama veya değil için yararlı olabilir eğer sadece görmek gerekir.

Ve belki sadece RDBMS ile gitmeli. Onlar hala son derece hızlı (organize ve arama Gelen Kutusu verilerin Facebook 50TB gibi varsa iyi belki sorun alacaksınız) ve düzgün tanımlanmış bir dizin performans için ne yapabilirim şaşıracaksınız. Bu kullanımı oldukça kolaydır böylece ve RDBMS bilgi ve iyi araçları bir çok şey var.

Iyi tasarlanmış bir uygulamada imho kolayca zaten temel veritabanı uygulaması geçmek gerekir.