![]() |
![]() |
-ARTURRO71- |
![]()
Post
#1
|
Goście ![]() |
Witam,
Przeszukałem google i niestety nie znalazłem odpowiedzi na następujący problem. Mam stronę oraz bazę danych MySQL na serwerze X. Skrypty zamieszczone na serwerze łączące się z bazą MySQL działają bardzo szybko (czyli normalnie). Jestem na etapie obrabianie dużych plików CSV a serwer ma ograniczenia czasowe na wykonanie skryptu do 30 sekund więc postanowłem odpalić taki skrypt z serwera na domowym komputerze - serwer WAMP/XAMPP itp. Problem w tym, że gdy łącze się z domowego serwera z bazą MyQSL na serwerze X, połączenie trwa bardzo długo. Skrypt na tym samym serwerze co baza MySQL wykonuje się poniżej 1 sekundy. Skrypt odpalony z serwera domowego, który łączy się z bazą na serwerze X, wykonuje się ok 15-20 sekund. Wiele postów znalazłem z tym problemem - niestety nigdzie nie ma odpowiedzi w tym temacie. Czy to jest normalne, że łączenie do bazy MySQL z zewnątrz trwa zawsze tak długo (IMG:style_emoticons/default/questionmark.gif) ? Może istnieje jakiś sposób na przyspieszenie tego połączenia (IMG:style_emoticons/default/questionmark.gif) ? Bede wdzieczny za fachowa pomoc - napewno nie tylko mnie sie przyda. Pozdrawiam. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 590 Pomógł: 107 Dołączył: 25.10.2011 Ostrzeżenie: (0%) ![]() ![]() |
Łączenie nie trwa długo - to jest chwila (tyle, ile zajmuje przekazanie pary login/pass).
UŻYWANIE bazy - to może trwać długo, w zależności od tego, ile danych przesyłasz łączem. Porównanie jest proste: jeśli baza jest na tym samym komputerze, co serwer WWW, to mamy właściwie tylko narzut na operacje I/O dysku. Jeśli serwer WWW i serwer SQL są podpięte via sieć (i to jeszcze ze słabą komunikacją), to pojawia się problem wydajności sieci. Masz mniej więcej taką samą sytuację jak kopiowanie pliku z dysku na dysk (to odpowiednik WWW i SQL na jednej maszynie) lub kopiowanie tego przez sieć ze słabym łączem (WWW i SQL via internet 1Mbit - bo równamy do słabszego parametru łącza). Spróbuj podzielić to na części i odpalać na serwerze, gdzie stoi sklep. Skoro 60k rekordów wykonuje się w dwie minuty (w pesymistycznym wariancie), Ty załóż że może być czasami gorzej (jeszcze trzykrotnie) wyjdzie Ci, żeby podzielić jeden plik na kilka mniejszych plików po ok. 10 tysięcy rekordów. Druga sprawa: spróbuj robić update bazy z crona - może się okazać (co jest częste), że limity na PHP wywoływane z CLI są inne niż na PHP wywoływane z WWW. Ba, może się zdarzyć, że tych limitów w ogóle nie będzie... |
|
|
![]() ![]() |
![]() |
Aktualny czas: 17.10.2025 - 15:29 |