![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 127 Pomógł: 0 Dołączył: 13.05.2003 Ostrzeżenie: (0%) ![]() ![]() |
Najpostrze i najczęściej używane zapytanie wygląda tak:
Ostatnio dowiedziałem się, że istnieje coś takiego:
Czyli można dopisać typ danych. Co ma przyśpieszyć w znacznym stopniu otrzymanie wyniku (mając dużą tabelę). Czy ktoś się spotkał z tym ? Ten post edytował Kamis 18.06.2005, 13:38:51 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 2 923 Pomógł: 9 Dołączył: 25.10.2004 Skąd: Rzeszów - studia / Warszawa - praca Ostrzeżenie: (0%) ![]() ![]() |
:: to rzutowanie typu, no w tym przypadku nie bedzie duza roznica w wydajnosci, mozne nawet jej nie bedzie bo i tak jest wykorzystywane rzutowanie niejawne. Zobacz sobie jak tworzysz widoki tam jest automatycznie takie rzutowanie wstawiane. Wszystko co jest warunkiem, dana zewnetrzna jest typu varchar. Wiec teoretycznie jesli wstawisz rzutowanie to powinno to pominac i baza nie powinna sprawdzac typow. Taki zapis czesto sie przydaje jesli np robisz Like do pola inet, lub zaokraglanie w typach numeric.
Odpowiadajac na Twoje pytanie czy przyspieszy zapytanie, raczej tak ale wydaje mi sie ze czasy nie beda az tak wielkie. |
|
|
![]() ![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 127 Pomógł: 0 Dołączył: 13.05.2003 Ostrzeżenie: (0%) ![]() ![]() |
Czyli to jest to samo co:
? a) Czy w ten sposób mogę wymuszać typy danych, które mają być wybierane(jeśli nie jest to ten typ danych to wywali error) ? (IMG:http://forum.php.pl/style_emoticons/default/cool.gif) Czy jak mam dużą ilość zapytań na raz z JOIN'ami to może być widoczna ta różnica ? c)
w tym przypadku PostgreSQL użyje indexowania przy wyszukiwaniu ? Właśnie słyszałem, że nie bo nie będzie określonego rzutowania danych. Z tego co wiem różnice widać przy ilości kilkuadziesięciu tysięcach rekordów. Zapytanie takie może trwać nawet 2 sek. zamiast np. 0.1 sek. Muszę przetestować:
z
ale najpierw muszę mieć jakąś dużą bazę danych :| Ps. Słyszałem, że przy większych typach danych wygodnie jest bazę podzielić ? Wygodnie nie znaczy efektywnie. Czy jak mam dużą liczbę krotek to szybciej baza będzie przeszukiwana jeśli jest w jednej tabeli czy jak ją podzielę? To samo zapytanie będzie musiało być kierowane do różnych tabel zawierających te same atrybuty. Trzeba będzie sprawdzać czy dana krotka występuje we wszystkich podzielonych tabelach. Ps. Dzięki za odpowiedzi - człowiek uczy się przez całe życie (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) a temat jest dla mnie ciekawy :] Ten post edytował Kamis 19.06.2005, 00:33:24 |
|
|
![]()
Post
#4
|
|
Grupa: Przyjaciele php.pl Postów: 2 923 Pomógł: 9 Dołączył: 25.10.2004 Skąd: Rzeszów - studia / Warszawa - praca Ostrzeżenie: (0%) ![]() ![]() |
Cytat a) Czy w ten sposób mogę wymuszać typy danych, które mają być wybierane(jeśli nie jest to ten typ danych to wywali error) ? Jesli sie nie da zrzutowac na dany typ to tak. Prosty test stowrz tabele z polem varchar, dodaj jakis rekord z tekstem i w select wpisz ::int4, zobaczysz blad. Cytat Ps. Słyszałem, że przy większych typach danych wygodnie jest bazę podzielić ? Wygodnie nie znaczy efektywnie. Czasami (przewaznie) struktura wymusza wlasnie taki podzial. Cytat w tym przypadku PostgreSQL użyje indexowania przy wyszukiwaniu ? Właśnie słyszałem, że nie bo nie będzie określonego rzutowania danych. Wlasnie wydaje mi sie ze on sobie rzutuje do odpowidnich pol, ale trzeba to sprawdzic. Jak bys sie dokopal do materialow na ten temat to z mila checia bym poczytal. |
|
|
![]() ![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 127 Pomógł: 0 Dołączył: 13.05.2003 Ostrzeżenie: (0%) ![]() ![]() |
Bardzo ciekawe wykłady znalazłem na ftp śląskiej grupy użytkowników linuxa.
ftp://slug.optics.polsl.gliwice.pl/gnupolsl/01-postgres/ W pdf'ach o tym nie ma. Trzeba ściągnąć część drugą wykładu (film) są zadawane pytania do prelegenta. Ja pobrałem z tego ftp'a wszystkie wykłady o postgresql (jesze TUTAJ JEST JEDEN) i muszę powiedzieć, że są na wysokim poziomie i wiele mnie nauczyły. Tydzień ściągania był wart tego :] Ten post edytował Kamis 20.06.2005, 01:54:51 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 17.10.2025 - 18:45 |