![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 259 Pomógł: 1 Dołączył: 3.07.2011 Ostrzeżenie: (0%) ![]() ![]() |
Mam dylemat w aplikacji ktora wymaga optymalizacji zapytan. Mam do wgrania srednio od pareset do ponad tysiac wierszy do bazy i sa na to 2 opcje w pdo ktore widze:
1) prepare() i kazda dane wgrywac pojedynczo 2) query() i zrobic implode z danych i wszystko dac w jednym zapytaniu (badz podzielic te dane na np. po 500 i zrobic pare zapytan) Wizualnie 2 rozwiazanie wygrywa, robi sie tylko max pare zapytan a nie jak w prepare nawet ponad tysiac, pytanie tylko czy to rzeczywiscie lepsze rozwiazanie. Nauczylem ise ze powinno sie korzystac z prepare. Z góry dzieki za wyjasnienie, pozdrawiam ps. jeszcze pytanie, jesli zrobie query i zgrupuje dane w jedno zapytanie a ktorys z wierszy sie nie doda przez duplikacje, to reszta sie doda ? Ten post edytował Octobus 6.01.2015, 11:50:41 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Dlaczego po prostu nie sprawdzisz? Wykorzystanie prepare + 1000 execute będzie na pewno wygodniejsze i mniej podatne na błędy, ale PDO nie wspiera żadnych mechanizmów do masowego dodawania danych więc nie koniecznie będzie to szybsze. Zresztą czy wąskim gardłem w ogóle jest PDO samo w sobie?
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 673 Pomógł: 106 Dołączył: 31.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
ps. jeszcze pytanie, jesli zrobie query i zgrupuje dane w jedno zapytanie a ktorys z wierszy sie nie doda przez duplikacje, to reszta sie doda ? Jeśli nie ustawisz sposobu rozwiązywania "konfliktów" to większość baz domyślnie wyrzuca błąd, zobacz tutaj -------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 13.06.2025 - 08:47 |