0
私はテーブルリストを持っています。このようなconstaintsと依存のテーブルがあります。たとえば従属テーブルの行が多い行を削除する
CONSTRAINT `FK_list_id` FOREIGN KEY (`list_id`)
REFERENCES `lists` (`list_id`)
ON DELETE CASCADE ON UPDATE CASCADE.
、いくつかは、それを削除するには長い時間がかかります(数千人の100以上)の子テーブルに多くの行をLIST_IDために私が持っている場合。また、これらの操作によってサーバーを絞ることができます。
この場合、リストを削除するにはどうすればよいですか? ON DELETE CASCADE
を使用しないでください。代わりに、リストを削除して、バックグラウンドで、子行をカスケード削除してリストを削除するのではなく、サブスクライバを削除しますか?
なぜでしょうか? 'SET NULL'は依然として書き込み操作であり、関連するすべてのレコードに適用されますが、いいえ? – dnagirl
SET NULLの利点はあまり明確ではありません。たぶん、NO ACTIONを使用して、キューの項目を入れて、いくつかのlist_idを持つ行を、バックグラウンドで1000のようなチャンクで削除します。 – Oleg