Witam,
napisałem autorski skrypt do relacji live.
Zaczynałem do 50 osób online potem, 200, 1000 i ostatnio 2650. I tutaj pojawił się problem - mój serwer nie daje rady - ale jest to spowodowane złą optymalizacją skryptu PHP.
Live dzieli się na front i admin.
Admin - działa na mysql i końcowe dane zapisuje do pliku txt.
Front - do tej pory łączył się z bazą robił insert, bądź update na podstawie session_id i na końcu zwracał sumę wyników z ostatnich 10 minut.
ale było to 2650 połączeń i zapytań do bazy w ciągu 5 minut ... co nam daje 9 połączeń na 1s.
Przerobiłem ostatnio licznik online na tekstowy:
1. otwieram plik szuka rekordu foreach'em jak jest to update, jak nie ma to dodaje. zamykam plik
2. otwiera ten sam plik i zlicza stan osob online - zwraca wynik
Przed tym wszystkim otwieram jeszcze plik z danymi do relacji.
Czy jest to dobra zmiana która pozwoli mi na obsługę 4-5 tys osob? Czy jest to najbardziej optymalny sposób?
Dodam tylko, że licznik online jest niezbędny.