大規模なデータベース テーブルのデータ移行方法。この方法は、フィールドが変更されるときにも使用され、ライブラリのロックを防ぎ、最速で実行されます。

CREATE TABLE user_info_temp (
    id bigint(28) NOT NULL AUTO_INCREMENT,
    name varchar(32) NOT NULL COMMENT '名称',
  ) 
  RENAME TABLE user_info TO user_info_old;
  RENAME TABLE user_info_temp TO user_info;


#插入近期几分钟需要的数据,后面再插入之前的数据
 INSERT INTO user_info SELECT * FROM user_info_old old WHERE old.create_time >= '2022-11-24 15:00:00'; 

 #按小时来,不然数据太多,插入时间太长可能造成数据库卡顿
 INSERT INTO user_info SELECT * FROM user_info_old old WHERE old.create_time >= '2022-11-24 00:00:00' and old.create_time < '2022-11-24 01:00:00'; 

アイデア:

  1. まず、元のテーブルと同じ一時テーブルを作成します。フィールドの属性を変更する必要がある場合は、この時点で変更することもできます。
  2. 元の大きなテーブルに別のテーブルという名前を付け、古いものを追加します
  3. 次に、データを迅速かつ簡単に移行できるように、一時テーブルに元のテーブルという名前を付けます。
  4. もちろん、元のデータを使用する必要がある場合は、最初に最近使用された可能性のあるデータを挿入し、次に以前のデータを挿入します。

おすすめ

転載: blog.csdn.net/Fire_Sky_Ho/article/details/128026253