![]() |
![]() ![]() |
![]() |
--marcin-- |
![]()
Post
#1
|
Goście ![]() |
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
O ile dobrze kojarzę nie ma limitu ilości wierszy dodanych w ten sposób. Jest jednak limit długości samego zapytania, ograniczony przez dyrektywę max_allowed_packet.
Raczej nie szalałbym z ilością dodawanych jednocześnie rekordów. Ten post edytował Crozin 29.04.2014, 09:28:14 |
|
|
-Gość- |
![]()
Post
#3
|
Goście ![]() |
Ile zatem jest optymalnie i bezpiecznie?
|
|
|
-Gość- |
![]()
Post
#4
|
Goście ![]() |
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Jeżeli masz dużą ilość rekordów do wrzucenia:
1. Przygotuj sobie zapytanie SQL - PDO::prepare(). 2. Rozpocznij transakcję - PDO::beginTransaction() 3. Wywołaj X razy wyrażenie z punktu pierwszego. 4. Zatwierdź transakcję - PDO::commit() PDO niestety nie obsługuje grupowych (ang. batch) operacji. Nie mniej jednak pow. sposób powinien być wystarczająco szybki, a na pewno bezpieczniejszy i wygodniejszy w użyciu niż sklejanie INSERTA-a z wieloma wierszami. Ten post edytował Crozin 29.04.2014, 10:13:35 |
|
|
-Gość- |
![]()
Post
#6
|
Goście ![]() |
Dzięki w PDO tak to by wyglądało, niestety dostałem skrypt do przeróbki pomijający całkiem wszelkie zasady i korzystajacy z mysql_query i staram się go choć minimalnie zoptymalizować.
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Tutaj zaczynają się już kwestie indywidualnego dostosowania konf. bazy/połączenia, które w dodatku mogą być, i zapewne są, zależne od konkretnych wersji oprogramowania. W takim przypadku faktycznie powinieneś skorzystać z multiple inserts + transakcji (ręczne wywołanie zapytań START TRANSACTION i COMMIT). Ile dokładnie rekordów na raz wrzucać? Prawdopodobnie będziesz musiał zrobić sobie kilka testów i samodzielnie dojść do tego jaka ilość jest optymalna.
Przydatne linki: 1. http://stackoverflow.com/questions/7977172...ert-performance 2. https://www.google.pl/search?q=mysql+insert...ce&safe=off 3. https://dev.mysql.com/doc/refman/5.6/en/insert-speed.html |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 01:09 |