![]() |
![]() |
![]()
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ę? |
|
|
![]() |
![]()
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.
|
|
|
![]()
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. |
|
|
![]()
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 |
|
|
![]()
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?
|
|
|
![]()
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ń? |
|
|
![]()
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? |
|
|
![]()
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? |
|
|
![]()
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.
|
|
|
![]()
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. |
|
|
![]()
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)
|
|
|
![]()
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.
|
|
|
![]()
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
|
|
|
![]()
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:
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. |
|
|
![]()
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
|
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 260 Pomógł: 30 Dołączył: 22.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
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 ^^ |
|
|
![]()
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)
|
|
|
![]()
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). |
|
|
![]()
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.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 03:43 |