私はこれを理解しようとしてきましたが、今のところ運がありません。
どちらが優れていますか: 複合 PRIMARY KEY または単一の PRIMARY KEY と UNIQUE インデックスを持つテーブル?
私のテーブルは次のようになります。
CREATE TABLE data (
bucket_id INTEGER,
backend_id INTEGER,
unique_id INTEGER,
weight INTEGER,
PRIMARY KEY (bucket_id, unique_id)
) ENGINE=InnoDB
複数の挿入を行っています。次の形式で複数値の挿入に挿入される 60 億以上の行
INSERT IGNORE INTO data VALUES (x1, x2, x3, x4), (y1, y2, y3, y4), .......)
それぞれに 500000 行あります (クライアントによって制限されます)。これらはすべてアプリケーションの起動時に行われます。現在、これを可能な限り高速化する必要があります。(backend_id, unique_id) の一意性が必要です。私はこれらを制御していませんが、インポートされたデータには重複があります。
問題は、複合 PRIMARY KEY の代わりに UNIQUE インデックスを使用すると、挿入ステートメントの速度を上げるのに役立つでしょうか? バッファプールなど、他の多くの要因がこれに影響することを私は知っています。