Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zmniejszenie ilości zapytań ( kody pocztowe )
Forum PHP.pl > Forum > PHP
adam1024
Witam
Posiadam bazę danych. Konkretnie są to kody pocztowe, 66117 rekordów.

Wykorzystuje je w skrypcie, użytkownik po podaniu kodu, może sobie wybrać miejscowość która pasuje do danego kodu. Takich wyborów na użytkownika przypada +/- 10


W jaki inny sposób mogę rozwiązać problem, nie tracąc na funkcjonalności aby odciążyć bazę?
Crozin
Ale z czym masz dokładnie problem? Gdzie jest wąskie gardło? 66 tys. rekordów to bardzo mało.
Pyton_000
Użycie Indeksu na polu z kodem pocztowym.
Poza tym nie powiedziałeś nic oprócz tego że "no ten tego, uzytkownik coś tam... bla bla.. kody pocztowe. ... bla bla ... +/- 10 ... bla bla"

Co z tymi kodami pocztowymi, jak je wybiera, skąd, do czego. Ajax, może normalny post/get Szklane kule pojechały na wakacje.
adam1024
Już sie poprawiam, więc użytkownik w profilu wypełnia inputa "Kod pocztowy" wprowadza wartość kodu czyli np. 00-002 i AJAXem jest wysyłana ta wartość do skryptu
a skrypt ten odpytuje bazę danych o konkretny kod pocztowy, i zwraca wszystkie miasta pasujące do kodu który wprowadził użytkownik jako pole opcji

Mam nadzieję że taki opis jest wystarczający
phpion
Może zrzucaj dane z bazy do pliku?
Pyton_000
No i nie rozumiem Twojego problemu.
Koleś podaje kod np. 19-333
Leci Ajax do PHP -> Daj mi miejscowości z kodem: 19-333

Leci zapytanie: SELECT miejscowości WHERE kod = 19-300 -> leci response.


I gdzie Ty masz tu 10 zapytań?
adam1024
Jest dokładnie tak jak piszesz

Chodzi mi raczej o to że użytkownik może mieć np. 10 mieszkań w różnych częściach kraju... chciałbym po prostu ograniczyć ilość odpytań do bazy , bo jak wiadomo kody pocztowe są raczej "stałe" i prawie zawsze takie same

Chyba że to gra nie warta świeczki?
nospor
Kurcze, masz bogatych klientow smile.gif

Olej to i nie kombinuj.... ludzi, ktorzy wpiszą wiecej niz jeden kod pocztowy bedziesz mogl policzyc na palcach jednej reki. A nawet jak bedzie ich wiecej to chyba serwis poradzi sobie z paroma dodatkowymi ajaxami raz na tydzien?
phpion
No to napisałem - zrzucaj dane do pliku i przeszukuj plik. Możesz zapisać dane zserializowane w postaci tablicy, której kluczem będzie kod pocztowy, a wartościami tablica miast. Wówczas autouzupełnianie nie będzie korzystało z bazy danych.
Pyton_000
Odpuść sobie. Nie masz 10k zapytań na s. żeby się tym martwić.

Jak już chcesz się bawić to możesz zrobić jakieś cache na zasadzie 1000 najczęściej pobieranych rekordów.
nospor
phpion przeszukiwanie tak duzego pliku/tablicy w cale nie bedzie optymalniejsze od bazy danych... raczej wink.gif
phpion
Zakładam, że nie chodzi tu o szybkość przeszukiwania, a o ograniczenie połączeń (nie zapytań) do bazy danych. Poza tym: jeśli zapisywałby dane w zaproponowany przeze mnie sposób to nie będzie musiał przeszukiwać pliku, a: wczytać jego zawartość, odserializować dane, sprawdzić czy dany klucz tablicy istnieje.
nospor
Cytat
, a: wczytać jego zawartość, odserializować dane, sprawdzić czy dany klucz tablicy istnieje.
Wlasnie o tym mowilem. To bedzie duzy plik i jego wczytanie, odserializowanie itd wcale nie bedzie takie szybkie
phpion
Wiem, dlatego też napisałem:
Cytat(phpion @ 12.06.2015, 12:29:32 ) *
Zakładam, że nie chodzi tu o szybkość przeszukiwania, a o ograniczenie połączeń (nie zapytań) do bazy danych.

Tragedii jednak nie powinno być. Zawsze można pobawić się bardziej w partyzantkę i tworzyć osobne pliki z numerami kodów pocztowych w nazwach wink.gif

PS: Przypomniało mi się - gdy zaczynałem przygodę z PHP nie wiedziałem jak dopisywać dane do pliku. Wiedziałem jak coś do niego zapisać, ale nie jak dopisać. I tak np. moje pierwsze skrypty typu księga gości to 1 wpis = 1 plik smile.gif Potem odczytanie zawartości katalogu, posortowanie plików po nazwach i wyświetlanie zawartości hehe.
adam1024
Czyli nie ma sensu kombinować z tym smile.gif dzięki wielkie za pomoc
prz3kus
Cytat(phpion @ 12.06.2015, 13:04:28 ) *
Wiem, dlatego też napisałem:

Tragedii jednak nie powinno być. Zawsze można pobawić się bardziej w partyzantkę i tworzyć osobne pliki z numerami kodów pocztowych w nazwach wink.gif

PS: Przypomniało mi się - gdy zaczynałem przygodę z PHP nie wiedziałem jak dopisywać dane do pliku. Wiedziałem jak coś do niego zapisać, ale nie jak dopisać. I tak np. moje pierwsze skrypty typu księga gości to 1 wpis = 1 plik smile.gif Potem odczytanie zawartości katalogu, posortowanie plików po nazwach i wyświetlanie zawartości hehe.

Przynajmniej mogłes zrobić pełno prawną edycje postów nikt sobie nie blokował pliku yahoo.gif
Ja to mam do tej pory pisze cos za miesiac czlowiek pozna cos nowegi i sobie mysli ale ja glupi byłem biggrin.gif
Po 5 latach pracy ciągle mam to samo ^^
Pyton_000
Człowiek Głupi się rodzi, głupi żyje i głupi umiera wink.gif
redeemer
Plik/pliki z serializowaną tablicą? Poważnie? thumbsdownsmileyanim.gif

Jeśli już chcecie proponować takie rozwiązania to lepiej z wykorzystaniem memcached/redis/itd. Nawet na wyższym poziomie za pomocą varnish też się da (bez modyfikacji kodu aplikacji).
phpion
Tak, poważnie. Skoro kolega na siłę próbował znaleźć alternatywne rozwiązanie to mu je podałem. Co do podanych przez Ciebie rozwiązań: zastanów się czy kolega byłby w stanie to ogarnąć. Nie umniejszając jego wiedzy to wydaje mi się, że miałby z tym jednak problem. Stąd sugestia plików.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.