Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [SQL] Mega zapytanie
ericdraven
post
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 2.03.2007

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


witam. czy spotkał się ktoś z takim przypadkiem aby jakąkolwiek metodą pobrać metodą pobrać całą bazę danych a następnie pracować na wyniku tego działania tak aby nie odpytywać wciąż bazy danych. chodzi jedynie o możliwość operacji select.
Go to the top of the page
+Quote Post
Petermechanic
post
Post #2





Grupa: Zablokowani
Postów: 47
Pomógł: 7
Dołączył: 6.05.2007

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


hmm... można to wszystko zarzucić do klas.
Go to the top of the page
+Quote Post
prond
post
Post #3





Grupa: Zarejestrowani
Postów: 254
Pomógł: 10
Dołączył: 8.11.2006
Skąd: Warszawa

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


Czy można zrobić takiego SELECT'a ? Oczywiście, np tak:
1. Pobierasz listę tabel razem z kolumnami (odpowiednia tabelka w information_schema)
2. Generujesz w skrypcie 2-wymiarową tablicę indeksowaną nazwami kolumn (wszystkimi) i nazwami tabel, w której umieszczasz informacje, czy dana kolumna należy do danej tabeli.
3. W pętli po tabelkach generujesz zapytania, tak aby w klauzuli SELECT były wszystkie kolumny, a te spośród nich które nie należą do danej tabli ustawiasz na NULL.
4. Złączasz te zapytania przez UNION
5. Odpalasz zapytanie
6. Dostajesz odpowiedź i zdajesz sobie sprawę, że pobieranie całej bazy danych jednym zapytaniem jest bez sensu winksmiley.jpg


--------------------
--------------------------------------------------------------------------------
weblog.axent.pl
--------------------------------------------------------------------------------
Go to the top of the page
+Quote Post
ericdraven
post
Post #4





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 2.03.2007

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


heh winksmiley.jpg jest z sensem jeżeli próbuję zminimalizować obciążenie bazy danych poprzez jednokrotne jej odpytanie a potem pracy na wyniku za pomocą jakiejkolwiek dostępnej metody etc itd itp. tak się tylko zastanawiałem czy istnieje takowa implementacja.
Go to the top of the page
+Quote Post
prond
post
Post #5





Grupa: Zarejestrowani
Postów: 254
Pomógł: 10
Dołączył: 8.11.2006
Skąd: Warszawa

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


Moim zdaniem próbujesz wykonać nie swoją robotę. Twoim zdaniem (przynajmniej w kontekście optymalizacji) jest stworzenie odpowiedniej struktury bazy danych (zakładając, że kryterium wydajności jest bardzo ważne możesz nawet złamać 1NF relacji), założenie odpowiednich ograniczeń i index'ów, ustalenie odpowiednich podpowiedzi do optymalizatora itp.

Zachowanie wydajności na odpowiednim poziomie (po wykonaniu powyższych czynności) należy już do SZBD oraz API służącego do komunikowania się z bazą. One już zadbają o cache'owanie zapytań, zbieranie statystyk, odpowiednie rozmiary buforów itp.


--------------------
--------------------------------------------------------------------------------
weblog.axent.pl
--------------------------------------------------------------------------------
Go to the top of the page
+Quote Post
Sedziwoj
post
Post #6





Grupa: Zarejestrowani
Postów: 793
Pomógł: 32
Dołączył: 23.11.2006
Skąd: Warszawa

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


ericdraven to jest bez sensu, bo jak ma się jakąś bazę to ona nawet 2GB pamięci operacyjnej sie nie zmieści, więc wynika z tego że masz małą bazę, a jak jest mała to obciążenie na niej będzie znikome.
Po drugie aby była spójność danych musiał byś zablokować zapis całej bazy, co jest kolejnym bezsensem.
Jedynym uzasadnieniem pobrania całej bazy danych, jest backup, ale do tego jest specjalny mechanizm, który generuje takie dane.


--------------------
Algorytmy w PHP, czy ktoś o tym słyszał?
Dlaczego tak mało kobiet programuje? ponieważ nie zajmują się głupotami.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 21.08.2025 - 17:27