Için very large site, kullanıcı depolama hesapları için size tavsiye ederim yöntem Sosyal Ağ (diyelim Facebook) gibi?
Özelliklerin her tür için 1) Tek XML dosyaları, kullanıcının dizininde: basicinfo.xml, comments.xml, photos.xml, ...
2) MySQL, bu konuda organize nasıl emin değilim ancak. Belki her özellik için ayrı tablolar? Örneğin Yorumlar için bir tablo, sütunlar id,from,message,time?
Ben XML depolama için tasarlanmış değildir biliyorum, ve PHP (bu kullandığım dil) tüm XML dosyasını okumak ve kullanılmadan önce bellekte saklamak gerekir.
Ama burada ben XML tercih etmelerinin nedenleri vardır (herhangi katılmıyorum ama eğer ben yanlış olabilir, lütfen söyle bana):
1) Ben kullanıcı hesaplarının yolları bu şekilde organize ettiyseniz
User ID 2342:
/users/00/00/00/00/00/00/00/23/42/
I think it's faster to find the Comments of a user by file path than seeking in a large database.
Also, if each feature is split in tables, each user profile will seek more than once, to display comments, photos, basic info, etc.
2) Bunun üzerine yazarken MySQL globaly kilitli duydum. Bu doğru mudur? Evet, ben değil her şeyden daha bir tek dosya kilitlemek için.
3) Is MySQL "shared" between the cluster? I mean, if 1 disk gets full, will it "continue" on another? Or do I, as the programmer, have to manage it myself and create new databases on another disk? (note, I use Linux)
It is ok that it is about the same by using XML files, but it is easier to split between disks, because structure is split by account IDs, not by feature as it would be in a database.
4) comments.xml her açıklamanızı depolamak unutmayın. Ben sadece her XML etiketi niteliklerini not ve mesajlar ayrı metin dosyaları olan commentid.txt. Her XML büyük çok olmamalıdır kez, bellek / zaman sorunlar olmamalıdır.
Tüm XML ayrıştırma sorununa gelince, belki XMLReader / Writer yerine SimpleXML / DOM kullanarak düşünmek gerekir? Ya da, performans tahsis azalacak mı?
Teşekkür ederiz!