Chcę skonfigurować bazę danych MySQL dla strony sieci społecznościowej dla mojej uczelni.Maksymalne równoczesne połączenia z MySQL
Moja aplikacja może mieć maksymalnie 10 000 użytkowników. Jaka jest maksymalna liczba jednoczesnych połączeń MySQL?
Chcę skonfigurować bazę danych MySQL dla strony sieci społecznościowej dla mojej uczelni.Maksymalne równoczesne połączenia z MySQL
Moja aplikacja może mieć maksymalnie 10 000 użytkowników. Jaka jest maksymalna liczba jednoczesnych połączeń MySQL?
Zgodnie docs MySQL: http://dev.mysql.com/doc/refman/5.0/en/server-system-variables.html#sysvar_max_user_connections
maximum range: 4,294,967,295 (e.g. 2**32 - 1)
Wy prawdopodobnie zabraknie pamięci, uchwyty plików i gniazd sieciowych na serwerze, na długo zanim dostał wszędzie blisko tej granicy.
dzięki .. ale czy powinienem użyć czegoś innego razem z mysql jak hadoop lub memcached, aby zwiększyć prędkość? – user2075703
ponieważ może to być mysql będzie obsługiwać równoczesne połączenia., Ale na pewno spowolni to podczas obsługi tak wielu połączeń – user2075703
tylko wtedy, gdy podstawowa konfiguracja mysql nie jest wystarczająco dobra. rozpocznij proste, dodaj później złożoność zgodnie z wymaganiami. liczba połączeń nie jest problemem. właśnie to robią te połączenia. 10 000 osób zalogowanych do mysql to nic. Problemem jest 10 000 użytkowników, którzy używają dużych, złożonych kwerend dotyczących zapamiętywania pamięci. Pamiętaj, że na Twojej stronie może być 10 000 osób, ale nie wszystkie z nich będą powodować zapytania DB w tym samym czasie. możesz mieć tylko (powiedzmy) 50 zapytań działających w danym momencie. –
Możesz mieć łącznie 10 000 użytkowników, ale to nie to samo, co użytkownicy współbieżni. W tym kontekście uruchamiane są współbieżne skrypty.
Na przykład, jeśli odwiedzający odwiedza index.php i tworzy zapytanie do bazy danych, aby uzyskać pewne dane użytkownika, to żądanie może trwać do 250 ms. Możesz ograniczyć czas trwania tych połączeń MySQL jeszcze bardziej, otwierając i zamykając je tylko podczas kwerendy, zamiast pozostawiać ją otwartą na czas trwania skryptu.
Choć jest ciężko, aby każdy rodzaj wzoru przewidzieć, jak wiele połączeń będzie otwarta w czasie, chciałbym zaryzykować następujące:
Prawdopodobnie nie będzie miał więcej niż 500 aktywnych użytkowników w dowolnym podany czas z bazą 10 000 użytkowników. Z tych 500 równoczesnych użytkowników prawdopodobnie będzie można uzyskać maksymalnieco 10-20 jednoczesnych żądań.
Oznacza to, że faktycznie tworzysz tylko około 10-20 jednoczesnych żądań.
Jak wspomnieli inni, w tym dziale nie musisz się martwić.
Zakładając stronę o skali Facebooka, a także zakładając, że nie ma warstwy pamięci podręcznej, takiej jak Memcached, aby wszystkie zapytania musiały trafić do bazy danych, czy MySQL będzie w stanie obsłużyć takie obciążenie? – SexyBeast
@SexyBeast czy otrzymałeś jakakolwiek odpowiedź na to pytanie lub do tej pory zrozumiałeś? –
Moje ograniczone zrozumienie polega na tym, że jeśli szukasz odpowiedzi w czasie zbliżonym do rzeczywistego, na przykład automatycznej sugestii Google lub nawet umiarkowanie szybkiej odpowiedzi, baza danych nie poradzi sobie z nią, spowolni ją o rząd wielkości. – SexyBeast
na tyle, że nie musisz się martwić. –
może obsłużyć 500-1000 współbieżnych połączeń? – user2075703
Również powinienem użyć mysql z hadoopem lub memcached, aby go przyspieszyć. – user2075703