Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zmniejszenie ilości zapytań ( kody pocztowe )
adam1024
post
Post #1





Grupa: Zarejestrowani
Postów: 110
Pomógł: 0
Dołączył: 13.02.2009

Ostrzeżenie: (0%)
-----


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ę?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 18)
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Ale z czym masz dokładnie problem? Gdzie jest wąskie gardło? 66 tys. rekordów to bardzo mało.
Go to the top of the page
+Quote Post
Pyton_000
post
Post #3





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
adam1024
post
Post #4





Grupa: Zarejestrowani
Postów: 110
Pomógł: 0
Dołączył: 13.02.2009

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
phpion
post
Post #5





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Może zrzucaj dane z bazy do pliku?
Go to the top of the page
+Quote Post
Pyton_000
post
Post #6





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


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ń?
Go to the top of the page
+Quote Post
adam1024
post
Post #7





Grupa: Zarejestrowani
Postów: 110
Pomógł: 0
Dołączył: 13.02.2009

Ostrzeżenie: (0%)
-----


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?
Go to the top of the page
+Quote Post
nospor
post
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Kurcze, masz bogatych klientow (IMG:style_emoticons/default/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?
Go to the top of the page
+Quote Post
phpion
post
Post #9





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




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.
Go to the top of the page
+Quote Post
Pyton_000
post
Post #10





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
nospor
post
Post #11





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




phpion przeszukiwanie tak duzego pliku/tablicy w cale nie bedzie optymalniejsze od bazy danych... raczej (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
phpion
post
Post #12





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




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.
Go to the top of the page
+Quote Post
nospor
post
Post #13





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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
Go to the top of the page
+Quote Post
phpion
post
Post #14





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




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 (IMG:style_emoticons/default/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 (IMG:style_emoticons/default/smile.gif) Potem odczytanie zawartości katalogu, posortowanie plików po nazwach i wyświetlanie zawartości hehe.
Go to the top of the page
+Quote Post
adam1024
post
Post #15





Grupa: Zarejestrowani
Postów: 110
Pomógł: 0
Dołączył: 13.02.2009

Ostrzeżenie: (0%)
-----


Czyli nie ma sensu kombinować z tym (IMG:style_emoticons/default/smile.gif) dzięki wielkie za pomoc
Go to the top of the page
+Quote Post
prz3kus
post
Post #16





Grupa: Zarejestrowani
Postów: 260
Pomógł: 30
Dołączył: 22.01.2007

Ostrzeżenie: (0%)
-----


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 (IMG:style_emoticons/default/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 (IMG:style_emoticons/default/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 (IMG:style_emoticons/default/yahoo.gif)
Ja to mam do tej pory pisze cos za miesiac czlowiek pozna cos nowegi i sobie mysli ale ja glupi byłem (IMG:style_emoticons/default/biggrin.gif)
Po 5 latach pracy ciągle mam to samo ^^
Go to the top of the page
+Quote Post
Pyton_000
post
Post #17





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


Człowiek Głupi się rodzi, głupi żyje i głupi umiera (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
redeemer
post
Post #18





Grupa: Zarejestrowani
Postów: 915
Pomógł: 210
Dołączył: 8.09.2009
Skąd: Tomaszów Lubelski/Wrocław

Ostrzeżenie: (0%)
-----


Plik/pliki z serializowaną tablicą? Poważnie? (IMG:style_emoticons/default/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).
Go to the top of the page
+Quote Post
phpion
post
Post #19





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




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.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 03:43