/ / INSERT ...重複キー更新とTRUNCATE / INSERT - mysql、データベース

INSERT ...重複キー更新とTRUNCATE / INSERT - mysql、データベース

私は現在、データプッシュスクリプトを書き直しています別のサーバ上のMSSQLデータベースからデータを取り出し、そのデータをMySQLデータベースに挿入します。このプロセスは夜間に実行され、PHP経由で処理されます。

元のスクリプト TRUNCATE夜間にすべてのデータを再挿入します。テーブルの中には、MSSQLデータベースに由来する一次キーがあります。いくつかの表はそうではありません。

私は、現在持っていないMySQLテーブルにジェネリックプライマリキーを追加することを検討しています。 INSERT ... ON DUPLICATE KEY UPDATE テーブルを空にして毎晩データを再挿入するのではなく、主キーは、このプロセス以外の理由で使用されません。

プロセスを高速化するか、リソースを大量に消費しないか INSERT ... ON DUPLICATE KEY UPDATETRUNCATE その後 INSERT スクリプトは現在実行していますか?現在のところ、それらを持っていないテーブルで一般的な主キーを作成するという面倒なことはありますか? INSERT ... ON DUPLICATE KEY UPDATE?私はこのスクリプトから最高のパフォーマンスを探しています。

回答:

回答№1は0

それ以外の一般的な答えを与えるのは難しいですあなたのデータの詳細を知っている。私は行内のテーブルのサイズを知りたいし、Innodbを使っているならば。しかし、テーブルが1000行未満で、かつ/またはInnodbを使用していない場合、そのままそのまま残しておきます。しかし、大きなテーブルを使用している場合は、INSERT..ON DUPLICATEメソッドを使用してスピードが飛躍的に向上しています。

良いプロセスは、大きなテーブルの1つまたは2つを切り替えて、速度の向上を測定することです。価値がある場合は、残りの部分を進めてください。