[MySQL] Maksymalna ilość jednoczesnych połączeń

0

Witam
Stworzyłem bazę danych w MySQL. Myślę że mogę mieć z nią problem ze względu na dużą liczbę użytkowników korzystających z niej jednocześnie. Ile może być maksymalnie jednoczesnych połączeń do bazy danych? Wiem że pewnie będzie to zależało od procesora i od ramu. Chciałbym zainstalować bazę na linuxie. Problem w tym że z założenia z bazy może korzystać nawet kilkadziesiąt tysięcy osób jednocześnie. Czy MySQL sobie z tym poradzi? Jak to można rozwiązać? Może jakaś inna baza danych? Proszę o pomoc.

0

ale oczywiście nie chciało się poszukać w dokumentacji http://dev.mysql.com/doc/refman/5.0/en/too-many-connections.html

0

z tego wynika że MySQL może obsłużyć maksymalnie 4000 połączeń jednocześnie, ale dla mnie to za mało. Jest jakieś wyjście żeby to "obejść"?

0

więcej to już sam system nie wydoli
ja widzę tylko drugi serwer i replikacja, ew możesz poszukać ile np. oracle jest w stanie obsłużyć max połączeń

0

Muszę zrobić coś takiego, że przykładowo 15 000 użytkowników korzysta w jednym czasie z jednej tabeli w MySQL'u. Pomyślałem żeby zamiast cały czas podtrzymywać ich połączenia przy każdej operacji INSERT/DELETE/SELECT program łączył się na chwilę z bazą i natychmiast rozłączał. Ale czy samo łączenie i rozłączanie dużej liczby użytkowników w krótkim czasie nie zwolni pracy serwera?

0

możesz jeszcze napisać serwer aplikacji, który będzie działał mniej więcej tak

połączenia userów serwer aplikacji (SA) baza
-> \
-> |->
-> / |
|
-> \ |
-> |-> |
-> / |
|
-> -> /

to znaczy serwer aplikacji będzie otwierał np. na każde 100 połączeń od userów jedno połączenie do bazy i w ramach tego jednego połączenia będzie obsługiwał sekwencyjnie tych 100 userów. Oczywiście jeśli podłączonych będzie tylko 10 userów to SA otworzy 10 połączeń z bazą, żeby nie blokować userów.

co do Twojego pytania to nie jestem w stanie odpowiedzieć na nie bo pojęcia nie mam co tworzysz i jaka jest specyfika, jakie będą zapytania, ile danych itp

0

piszę komunikator. Rozmowy użytkowników przechowywane są w jednej tabeli. Co 5 sekund klient łączy się z bazą i sprawdza czy ktoś coś do niego napisał, jeśli tak to pobiera wiadomość i kasuje ją z tabeli. Wiadomości dodawane są do tej samej tabeli "tylko" wtedy jeśli dany użytkownik coś do kogoś napisze.

0

jak dla mnie BD do zarządzania wiadomościami to porażka.
Lepiej napisać serwer aplikacji, przez który będą się łączyć wszyscy i który będzie wysyłał do odbiorcy informację, że ma wiadomość a bazy używał tylko i wyłącznie do przechowywania wiadomości.
Jeśli ten komunikator ma działać i ktoś ma z niego kokoRZystaćystać to zastanó się poważnie nad tym. BTW odpytywanie co 5 sekund serwera BD w necie zabije cały system. Przy większej ilości userów mogę Ci zagwarantować, że przypadek, gdzie user nie dostanie wiadomości albo dostanie ją kilka razy nie będzie niczym nienormalnym

0

Chciałem to zrobić jak najprościej bez pisania serwera, ale widzę że chyba się nie obejdzie bez tego. Dzięki za pomoc

0

Ale poczekaj. Jak to robi np jabber? Z tego co wyczytałem to działa podobnie do serwera pocztowego, z tym że wiadomości są wysyłane i odbierane w czasie rzeczywistym. Czyli według mnie klient też łączy się z serwerem, wysyła wiadomość i rozłącza.
Z drugiej strony jak bym sam napisał swój serwer do obsługi mojego programu to też nie wiem jak by się zachował przy tak dużej liczbie użytkowników. Chodzi tutaj też o platformę sprzętową. Na jakim sprzęcie/systemie to postawić? Chodzi mi o darmowe rozwiązania.

1 użytkowników online, w tym zalogowanych: 0, gości: 1