私の仕事は、操作中に影響を受けなかったすべてのエンティティをデータベースから削除することです。私は2つの列を持つ別のテーブルを作成し、最初にテーブルの名前をrepresetsし、2番目のテーブルのレコードのIDです。例えば大きい "タイプ値"テーブルを処理するためのMysqlエンジンを選択
CREATE TABLE edited_entities (
table VARCHAR(50) not null,
id BIGINT(20) not null)
私はテーブル
CREATE TABLE puppy(
id BIGINT(20) not null,
name VARCHAR(20) not null)
とそれにレコード
id | name
1 | Rex
を持っている場合、私はこのレコードを編集する場合、私はedited_entitiesに次のデータを置くには:
table | id
puppy | 1
次に、削除する必要がありますE以外のすべての影響を受けた(IDはedited_entitiesテーブルにない)エンティティと、私は次の操作を行います
delete from puppy where id not in
(select ee.id from edited_entities ee where ee.table= 'puppy');
は、私は(MySQLの)操作のような種類のための最高のエンジンは何だろうか?デフォルトのdbエンジンはInnoDBです。私はメモリ(ヒープ)について考えていましたが、削除操作が高速かどうかはわかりません。
ご要望があれば、どのように必要な操作を最適化することができますか?私はここでそれをうれしく思います。
私は子犬のテーブルに追加の列を追加しないでください。
さまざまなvarcharサイズが目的に合っていないと思いますか? –