![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 24.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Zastanawiam się w jaki sposób można rozwiązać następujący problem. Strona wyszukuje informacji w 10 niezależnych bazach danych o dużych rozmiarach (powiedzmy kilkadziesiąt tysięcy rekordów do przeszukania). Każda na osobnym serwerze. Zwrócenie wyniku każdej z nich trwa powiedzmy 3~5sek. Jak łatwo policzyć łącznie się z każdą bazą po kolei, wysłanie zapytania, odczytanie wyniku oraz wyświetlanie go na ekranie użytkownika zajmie 30~50 sek. W jaki sposób wysłać zapytanie do każdej z baz danych, tak żeby wszystkie serwery MySQL wykonywały swoją pracę jednocześnie, a nie po kolei? Najlepiej by było, gdyby wyniki były wyświetlane zgodnie z kolejnością ich nadchodzenia (czyli serwer który odpowie najszybciej wyświetlany na górze strony) Czy da się to zrobić z wykorzystaniem czystego PHP, czy trzeba "zaprząc" do pracy inne języki programowania? Pozdrawiam -willy- |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Do tego trzeba nawiązać asynchroniczne połączenia z bazami. A to wymusza zastosowanie AJAX i w tę stronę bym ciągnął, bo to wydaje mi się najbardziej sensowne z wszystkich możliwych podejść.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 855 Pomógł: 145 Dołączył: 17.07.2008 Skąd: High Memory Area Ostrzeżenie: (0%) ![]() ![]() |
Do tego trzeba nawiązać asynchroniczne połączenia z bazami. A to wymusza zastosowanie AJAX i w tę stronę bym ciągnął, bo to wydaje mi się najbardziej sensowne z wszystkich możliwych podejść. Nie wymusza. Można przecież wywoływać skrypty potomne ze skryptu głównego (co nie znaczy, że tak będzie prościej czy lepiej (IMG:style_emoticons/default/winksmiley.jpg) ) I jest jeszcze coś takiego: http://www.php.net/manual/en/mysqli.reap-async-query.php szukam chętnego, który to rozgryzie (IMG:style_emoticons/default/winksmiley.jpg) [edit] Ha... czyli od wersji 5.3 PHP można wykonywać zapytania asynchroniczne przy pomocy mysqli_query z flagą MYSQLI_ASYNC Ten post edytował Mchl 15.12.2009, 08:46:39 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 15.10.2025 - 04:11 |