Wpis z mikrobloga

@mk321: jeden insert z wieloma wartościami.

@ArtyQ: No tak myślałem żeby pobrać ilość przed i po i sprawdzić właśnie czy się ilość zgadza.Drugi pomysł możesz rozwinąć bardziej ?
@nowiutki: No ni wiem coś może pójść nie tak.Co jeżeli prądu zabraknie nic wtedy nie pójdzie czy na przykład do połowy ?
  • Odpowiedz
via Wykop Mobilny (Android)
  • 2
@smalczyk1: inserty na bazie są atomowe. To baza zarządza tym, żeby udała się całość lub nic. To w uproszczeniu działa tak:
- robisz inserta
- baza zapisuje obecny stan na dysk
- baza zaczyna wykonywać inserta, jedno pole, drugie pole itd
- jak skończyła to dopiero zapisuje na dysk.
Nie ma możliwości, żeby jak w trakcie zabraknie prądu to było coś niespójne. Po prostu cofnie się cały insert.

Wystarczy że jak
  • Odpowiedz
@smalczyk1: Zależy od rodzaju danych, ale przykładowo jeśli dane tekstowe to można zliczyć liczbę znaków w rekordzie i zsumować co daje info czy wszystko się załadowało.
  • Odpowiedz
via Wykop Mobilny (Android)
  • 3
@smalczyk1: wydajniej jest jeden insert z 1000 values. Bo wtedy do bazy idzie tylko jedno zapytanie.

Jakbyś zrobił 1000 insertów to:
- 1000 zapytań do bazy.
- jak w połowie się przerwie, to połowa się zrobiła i się nie wycofa. Musisz zrobić to w jednej transakcji.
- wykona się 1000 osobnych transakcji. Bardzo niewydajne. Musisz to zrobić w jednej transakcji.

Tylko uważaj na ograniczenia bazy danych. Nieraz są jakieś limity. Jakbyś
  • Odpowiedz