3

郵便番号と家番号に基づく値で構成されるテーブルを含むMySQLデータベースを取得しました。したがって、主キーは、検索するフィールドである郵便番号と家番号として選択されます。データベースには約1,000万件のレコードが含まれています。

1つの特定の郵便番号は約100000の異なる家番号で構成されており、挿入に非常に時間がかかります(10000レコードあたり1時間)。

プログラミング言語はJavaであり、falseでautocommitを使用して10000のバッチでプリペアドステートメントを使用しています。

テーブルの構造は次のとおりです。

+ ----------------- + ------------- + ------ + ----- + ---- ----- + ------- +
| フィールド| タイプ| ヌル| キー| デフォルト| エクストラ|
+ ----------------- + ------------- + ------ + ----- + ---- ----- + ------- +
| 郵便番号| varchar(6)| いいえ| PRI | NULL | |
| house_no | int(11)| いいえ| PRI | NULL | |
| sanddcode | varchar(45)| いいえ| | NULL | |
| デポ| varchar(3)| いいえ| | NULL | |
| network_point | varchar(6)| いいえ| | NULL | |
| 地域| varchar(3)| いいえ| | NULL | |
| seq | int(11)| いいえ| | NULL | |
| cluster_id | varchar(1)| いいえ| | NULL | |
| ストランドID| int(11)| いいえ| | NULL | |
| ストランド_プロップ_id| int(11)| いいえ| | NULL | |
| version_id | int(11)| いいえ| PRI | NULL | |
+ ----------------- + ------------- + ------ + ----- + ---- ----- + ------- +

これに対する解決策を知っている人はいますか?ありがとう!

4

2 に答える 2

1

GUI からデータをロードしようとしていない場合は、すべてのデータをかなり高速にロードする SQL ローダーをお勧めします。

https://metacpan.org/pod/SQL::ローダー::MySQL

http://www.roseindia.net/sql/mysql-example/loader-tutorial.shtml

于 2012-12-14T14:54:13.310 に答える
1

多くの行を挿入する必要がある場合は、最初にキーを削除し、次にすべてのデータを挿入してから、キーを再作成する方がおそらく高速です。そうすれば、データベースはこれらのキーの更新に多くの時間を費やす必要がなくなります。

于 2012-12-14T14:57:41.477 に答える