0

100 000 000 行の大きなテーブルがあります。1 つのルートを持つツリーが含まれています。2 つのフィールドとして実装されたツリー:

id int
parent_id int

このツリーに関する追加データはありません。

テーブルに新しい列を追加したい

階層ID

階層値を入力します。

スクリプトを作成しましたが、15 時間以内に機能します。大丈夫ではありません。3 時間以内に実行する必要があります。どうやってするの?サンクス。

4

1 に答える 1

0

私は前にこれに遭遇しました。テーブルに列を追加するということは、事実上、ファイル システム上のストレージを再定義することを意味します。そのため、テーブルが巨大でいっぱいの場合、SQL がデータを古いテーブル定義から新しいもの - したがって、永遠にかかります。

最速の方法は、追加された列を含む新しいテーブルを作成し、古いテーブルからデータをチャンクでエクスポートした後、データを (挿入ではなく) 新しいテーブルに BCP することだと思います。BCP の利点は、超高速であることです。

于 2013-07-12T10:48:33.107 に答える