erosystem
19.09.2009, 15:42:38
Witam,
mam następujący problem, programista wykonał moduł do strony - komunikator to rozmów z użytkownikami dostępnymi online w serwisie , został napisany w taki sposób iż wszystko jest oparte na bazie mysql czyli 1 osoba wysyła wiadomość do drugiej , wiadomosc trafia do bazy , następnie z bazy jest pobierana i wyswietlana u drugiego usera od razu. Problem w tym iż bardzo dobry serwer dedykowany po chwili użytkowania przez kilkanaście osób padł.
Pytanie jest następujące , jak zmienić komunikator tak aby wiadomości nie były zapisywane w bazie i pobierane z bazy , chodzi o jakieś rozwiązanie dzięki któremu jedynie np samo zaproszenie do rozmowy będzie szło przez bazę , zaś cała rozmowa nie będzie zapisywana w bazie z i bazy pobierana tylko jakiś inny sposób który wykorzystują np zwykłe czaterie gdzie jest możliwość rozmów przez PRIV.
Z góry dziękuję za pomoc
erix
19.09.2009, 15:47:55
A skąd mamy to wiedzieć, jak zmienić? Nie ma uniwersalnej recepty.
No i pytanie za sto punktów - baza posiada indeksy, czy nie? Jak nie, to się nie dziw.
erosystem
19.09.2009, 15:50:30
Programista twierdzi że indexy nie pomogą za dużo , czaty przecież nie działają chyba na bazach w formie takiej iż każda wiadomość trafia do bazy i z bazy pobierana jest dla każdego użytkownika ? może jakiś zapis każdej rozmowy w plikach i okienko rozmowy w ajaxie odświeżane do 3 sekundy ? W pliku zaś zapisywane ostatnie 50 wiadomości i po zakończeniu rozmowy plik kasowany z serwera ?
erix
19.09.2009, 15:53:56
Cytat
Programista twierdzi że indexy nie pomogą za dużo
Czyli indeksów nie ma?

Powiedz temu programiście, żeby poczytał, do czego służą indeksy. Nie dziw się, że bazę zajeżdża. Coś takiego raczej nie powinno zajeździć; załóż najpierw odpowiednie indeksy i wtedy pogadajmy.
Swoją drogą, do tej pory nie mogę pojąć, dlaczego ludzie tak olewają indeksy na pola w bazie...
erosystem
19.09.2009, 16:01:55
Indexy na inne tabele w bazie mam , po dodaniu komunikatora obciążenie serwera wzrosło 3 krotnie na MAX więc nawet indexy nie wiele pomogą , chodzi mi o rozwiązanie takie aby nie zapisywało rozmów w bazie.
elmozaur
19.09.2009, 16:05:45
kilkanascie osob rozwalilo dedykowany serwer ? To chyba ebooki sobie wysylali...
A tak powaznie. Zazwyczaj to osobne aplikacje napisane np w Javie ktore dane odbieraja, keszuja i raz na jakis czas zapisuja w bazie. Osobiscie nie wyobrzazm sobie 100 userow ktorzych "zwykla" baza miala by obslugiwac w tej samej chwili. No ale to chyba logiczne. Jesli zakladasz ze wymiana informacji bedzie trwala kilka godzin to pomysl aby przed zapisem do bazy kompresowac bloki textu. Pismo swietnie sie kompresuje
pozdrawiam
Grzegorz
mydoom.h
19.09.2009, 16:08:12
A cache dla mysql masz?
Dobry serwer dedykowany czyli jaki?
erosystem
19.09.2009, 16:19:20
cache dla mysql raczej nie ma , szczerze to pierwszy raz się z czymś takim spotykam , nie programuję tylko orientuję się aby programiście podsunąć jakiś pomysł jak to zmienić. Serwer dedykowany dobry i tu na pewno nie wina po stronie serwera gdyż przed dodaniem komunikatora bardzo małe obciążenie serwis powodował.
Tak jak wspomniałem najbardziej interesuje mnie rozwiązanie takie aby można było rozmowy skasować z bazy bo każda wiadomość do oddzielny rekord i za każdym razem więc wszystkie pewnie są pobierane które się wysyłało i otrzymało.
Co sądzicie o tym aby rozmowy były zapisywane w plikach , każda rozmowa w oddzielnym pliku , w pliku zapisywane ostatnich 50 wiadomości , okno komunikatora zaś w ajaxie i odświeżane do sekundę czy dwie , po zakończeniu rozmowy plik kasowany z serwera. Czy takie rozwiązanie nie będzie lepsze?
Fifi209
19.09.2009, 16:29:03
Bazy nie da się tak łatwo zajechać...
A tak w ogóle po co pobierać wszystkie wiadomości? Nie można np. x ostatnich?
CyberDuck_
19.09.2009, 23:53:50
Cos ten programista jest nie kumaty skoro Ty mu
musisz podpowiadac rozwiazania. Ja mam napisany czat
na php i na bazie. Nie znam prawie wcale js i dlatego sie
pokusilem o napisanie czata jedynie na MySql i php.
Wszystko chodzi ladnie. Co do indexowania skoro sie tylko
orientujesz to dlaczego zarzucasz innym, ze nie maja racji ?
To podstawa. Podczas tworzenia tabel sam phpMyAdmin juz
sie domga indexow.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.