少なくともInnoDBを使用すれば(そして、彼らがこれを理解してくれることを願っています)、外部キーがなくてもより多くの操作が可能になります。 。挿入物はおおよそこれです:
- 行を挿入
- バイナリログバッファにマークを付ける
- コミットをマーク
削除は次のことを行います:
- 削除された行をマークします(挿入と同じヒットを取得します-ページが書き換えられます)
- バイナリログバッファにマークを付ける
- コミット済みのマーク
- 実際には行を削除します(挿入と同じヒットを取得します-ページが書き換えられます)
- パージスレッドは、バイナリログバッファ内の削除も追跡します。
そのためには、挿入ではなく削除する作業が2倍になります。削除は、今後すべてのバージョンで削除済みとしてマークする必要があるため、これら2つの書き込みが必要ですが、削除できるのは、それを参照するトランザクションが残っていない場合のみです。 InnoDBは完全なブロックのみをディスクに書き込むため、ブロックの変更ペナルティは一定です。