Ben birden çok kullanıcı için bir oturum değişkeni userID ait çok büyük bir dizi kaydedebilir miyim?

2 Cevap php

Tamam ben şimdiye kadar 50.000 kullanıcıların etrafında bir sosyal ağı var ve sitede arkadaşın kim olduğunu göstermek bir arkadaş tablo var, bu tablo, bir milyon satır olduğunu

Not the tricky part, I show user posted bulletin, status posts, stuff like that that is only visible to people on your friend list. Keep in mind the size of the tables, user table around 50,000 so far and friend table around 1 million

Bir kullanıcıya göstermek için ne statü mesajları bilmek arkadaş listesini alma 1. yöntem aşağıda bu sorguyu çalıştırmak ve bir diziye sonuçları koymak için

select friendid from friend_friend where userid=1 and status=1

Ben daha sonra bir virgülle ayrılmış liste halinde bu diziyi açmak ve bu kullanıcı görüntülemek için izin verilen mesajları getirir mysql sorguda bir IN yan tümcesinde kullanmak istiyorsunuz

O kadar mantıklı umuyoruz.

Now what if I were to save this friend array to a session variable since this query is ran very frequently? One of the drawbacks I see is if a user adds that person as a friend while they are logged in, they would show up as there friend until that session was reset but other then that, would this be bad performance for memory or whatever sessions use?

Ayrıca orada yapman kadar 500 kullanıcılar bazen ve bazı 10.000 arkadaşı ID arkadaşı listesi var ve bu bir PHP / MySQL kurulum dikkat

Oturum veriler hakkında başka bir soru, bu dosyada saklanır ve doğru hafiza sistemi değil mi? Yerine bellek diskte ise bellek çok bir sorun olmamalı?

2 Cevap

belki dinamik olarak bu soruna yanıt vermek isterim.

diyelim, eğer bir kullanıcı X arkadaşlar daha var, onu önbelleğe yok. Bir kullanıcı arkadaşlar bir sürü var ve bağlantı üzerinden tüm verileri itmek gerektiğinde ne olabileceğine düşünüyorum ... i listesine her zaman sorgulamak gerektiğinde kullanıcı olandan daha büyük performans azalma olarak tanır düşünüyorum.

Bu PHP / MySQL ile benim deneyime dayalı benim görüşüm ... belki teklif ne yapmak için bir nedeni ^ zaten var

selamlar

Eğer memcached içine baktı mı? Bu makale (http://highscalability.com/memcached-and-storage-friend-list), ve bu yorumun, MEMCACHE için boşaltma karşı yolunuzu artılarını ve eksilerini vurgulayın.