Przynajmniej z InnoDB (i mam nadzieję, że masz na to ochotę), masz więcej operacji nawet bez kluczy obcych . Wstawka to mniej więcej tak:
- Wstaw wiersz
- Zaznacz w buforze dziennika binarnego
- Zaznacz zatwierdzenie
Skasowanie jest następujące:
- Oznacz wiersz jako usunięty (przyjmując to samo trafienie co wstawienie – strona jest przepisana)
- Zaznacz w buforze dziennika binarnego
- Oznacz zobowiązanie
- Właściwie idź usunąć wiersz (przyjmując to samo trafienie co wstawienie – strona jest przepisana)
- Wyczyść wątek śledzi również usunięcia w buforze dziennika binarnego.
W tym celu masz dwa razy więcej pracy, aby usunąć, a nie wstawić. Usuwanie wymaga tych dwóch zapisów, ponieważ musi być oznaczone jako usunięte dla wszystkich przyszłych wersji, ale można je usunąć tylko wtedy, gdy nie pozostały żadne transakcje, które go widzą. Ponieważ InnoDB zapisuje na dysk tylko pełne bloki, kara za modyfikację bloku jest stała.