Skocz do zawartości
Zaloguj się, aby obserwować  
Moaha

Zdalna baza Mysql a obciążenie

Polecane posty

Witam!

 

Załóżmy że mam jakąś aplikację która trzyma dane w bazie Mysql ale ta baza nie znajduje się na serwerze lokalnym tylko gdzieś na innym serwerze daleko w sieci...

 

Załóżmy że ping z serwera aplikacji do serwera Mysql jest 20 ms.

 

Pytanie jest takie... Czy to że baza danych jest na innym serwerze będzie miało jakiś wpływ na jej obciążenie? Tzn. czy baza danych będzie bardziej obciążała serwer jeżeli będzie na innym serwerze niż aplikacja?

Jeżeli strata mocy będzie to jak duża? Czy może jedynie będzie różnica w czasie wykonywania zapytania a obciążenie takie samo?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Baza nie będzie obciążała serwera bo jej na nim nie ma. Za to prawdopodobnie znacznie zwiększy się czas ładowania strony.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość Łukasz Tkacz

2(połączenie + ilość zapytań do bazy) x 20ms.

Czyli 20 lekkich zapytań (zoptymalizowany skrypt) wychodzi ponad 0.8s na same pobieranie danych z bazy...

Gra nie warta świeczki :rolleyes:

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Chyba, że zastosuje się połączenie permanentne - wtedy nie będzie się tracić czasu na łączenie z bazą.

 

Ale też uważam, że jest to gra nie warta świeczki.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

2(połączenie + ilość zapytań do bazy) x 20ms.

Czyli 20 lekkich zapytań (zoptymalizowany skrypt) wychodzi ponad 0.8s na same pobieranie danych z bazy...

Gra nie warta świeczki :rolleyes:

 

Zoptymalizowany skrypt to wykona całą transakcję w jednej sesji TCP/IP.

Do tego - wg ciebie to połączenie z localhostem via TCP ma zerową latencję?

Chyba też jakieś milisekundy to zajmuje...

Poza tym - latency 20ms to oznacza, że 20ms później dostaniesz dane.

A jeśli to będzie typowy strumień, to przyjdzie cały opóźniony o 20ms a nie 0,8sek.

 

Wracając do meritum - łączenie z zewnętrznym serwerem (poprzez sieć WAN) ma sens wtedy, gdy po prostu musi być wspólna baza dla wielu klientów rozmieszczonych w wielu lokalizacjach.

W przypadku, gdy jest to jedna baza, z jednym użytkownikiem, to logicznym jest, że lepiej ją umieścić albo równolegle na serwerze aplikacyjnym, albo też - jeśli wymagana jest jej ekstraduża wydajność - postawić sobie w sieci LAN na jakimś równoległym hoście.

 

Chyba, że ktoś z jakichś tam względów prawno-cośtamowych będzie do tego zmuszony... ale...

Przy zewnętrznym dostępie dochodzi tu wielka kupa problemów - gdzie ta latencja to coś, co można przeboleć jeszcze... głównym problemem jest bezpieczeństwo danych sobie przepływających - sesje MySQL są w większości przypadków totalnie nieszyfrowane.

Więc aby zapewnić sobie wyniesienie tego dalej, to trzeba by albo aplikację na mysqls przerobić, albo zestawić bezpieczny VPN.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Że opóźnienia będą to się z tym liczę.

Zapytań nie będzie aż 20 jak ktoś wyżej napisał bo max kilka. A poza tym wszystko będzie cachowane więc większość wywołań w ogóle nie będzie tykać bazy...

 

Tylko proszę mi powiedzieć jak z tym obciążeniem. Rozumiem że skrypt będzie się dłużej wykonywał ale czy obciążenie serwera Mysql będzie takie samo zarówno gdy pomiędzy serwerem aplikacji a mysql będzie 20ms jak i 2ms?

 

Chodzi o to czy mi się baza nie wykolei z powodu tego że serwer jest oddalony o 20 ms...

Bo zapytania takie same ale przecież połączenie z bazą będzie nawiązywane na dłuższy czas...

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Tylko proszę mi powiedzieć jak z tym obciążeniem. Rozumiem że skrypt będzie się dłużej wykonywał ale czy obciążenie serwera Mysql będzie takie samo zarówno gdy pomiędzy serwerem aplikacji a mysql będzie 20ms jak i 2ms?

 

Obciążenie serwera mysql bedzie takie samo.

 

Czy zapytania do serwera mysql sa proste czy rozbudowane?

Najbardziej korzystne umieszczenie myslqa na odzielnej maszynie jest wtedy gdy sa to rozbudowane i wolne zapytania z wieloma joinami.

Przy wielu prostych zapytaniach czas transmisji moze byc większy niz czas wykonywania zapytan.

 

Ed

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

głównym problemem jest bezpieczeństwo danych sobie przepływających - sesje MySQL są w większości przypadków totalnie nieszyfrowane.

Więc aby zapewnić sobie wyniesienie tego dalej, to trzeba by albo aplikację na mysqls przerobić, albo zestawić bezpieczny VPN.

A tym mam się przejmować?

Jeżeli w bazie nie będzie danych np. jakiegoś sklepu/banku/płatności itd.?

 

Chyba dla "jaj" nikt mi nie będzie zaglądał w to co pobieram z bazy?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

A tym mam się przejmować?

 

Oczywiście, że nie, najprawdopodobniej nie masz shella na zdalnym serwerze, więc nic nie poradzisz

 

Jeżeli w bazie nie będzie danych np. jakiegoś sklepu/banku/płatności itd.?

 

Chyba dla "jaj" nikt mi nie będzie zaglądał w to co pobieram z bazy?

 

Odpowiedz sobie na pytanie, po co komuś przeglądanie Twojej bazy? Jeżeli nie ma w w niej numerów kart kredytowych, jawnie zapisanych haseł lub czegokolwiek podobnego to moim zdaniem nie ma czym się przejmować.

 

Pozdrawiam,

PM

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Odpowiedz sobie na pytanie, po co komuś przeglądanie Twojej bazy? Jeżeli nie ma w w niej numerów kart kredytowych, jawnie zapisanych haseł lub czegokolwiek podobnego to moim zdaniem nie ma czym się przejmować.

Yeah. Tylko czemu nic użytkownikowi tak naprawdę nie dające uzyskanie na jakimś hostingu /etc/passwd jest bardzo wielce tu piętnowane?

Idąc tym tokiem myślenia - może dać chmoda 444 na /etc/shadow - przecież tam nie ma jawnie zapisanych haseł =)

 

 

Piszę to tak ku przestrodze, żeby użytkownik potem nie robił wielkiego płaczu i winił wszystkich poza sobą, że jego aplikacja okazała się dosyć mocno "dziurawa" i gdzieś ta baza danych wypłynęła...

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się

Zaloguj się, aby obserwować  

×