Alespoň s InnoDB (a doufám, že vás na to mají), máte více operací i bez cizích klíčů . Vložka je zhruba tato:
- Vložit řádek
- Označte do vyrovnávací paměti binárního protokolu
- Označit potvrzení
Odstranění provádějte takto:
- Označit řádek odstraněný (při použití stejného požadavku jako vložení – stránka se přepíše)
- Označte do vyrovnávací paměti binárního protokolu
- Označit jako potvrzené
- Ve skutečnosti jděte a odstraňte řádek (přičemž stejný přístup jako vložení – stránka se přepíše)
- Vyčistit vlákno sleduje smazané stopy také ve vyrovnávací paměti binárního protokolu.
Za to máte dvakrát tolik práce s mazáním než s vkládáním. Odstranění vyžaduje tyto dva zápisy, protože musí být označeno jako odstraněné pro všechny budoucí verze, ale lze jej odstranit pouze tehdy, když nezůstanou žádné transakce, které jej vidí. Vzhledem k tomu, že InnoDB zapisuje na disk pouze celé bloky, je postih za modifikaci za blok konstantní.