Kettle に最適化されたテーブル出力

       本日、教室情報を整理してデータベースに保存する際に、mysqlサーバーをリプレースしました。その結果、データ挿入速度が非常に遅くなるため、データ挿入速度を上げるチューニングが必要になります。そこで、7 分近くかかって挿入されたデータを 3 秒以内に解決する方法をいくつか考えました。

目次

        mysql接続数の最適化

Kettle データベースの挿入操作の最適化

Kettle では複数のスレッドが可能

データセットのサイズを適切に増やす

Java 仮想マシンのメモリを増やす

ALTER TABLE 出力コミットレコード番号

最適化の結果


mysql接続数の最適化

       MySQL の最大接続数のデフォルト値が 100 であることは誰もが知っています。この値は、同時接続を行う多くのデータベースのアプリケーションには十分とは言えません。接続リクエストがデフォルトの接続数を超えると、データベースに接続できないというエラーが発生するため、適切にスケールアップする必要があります。MySQL データベースを使用すると、MySQL にアクセスするために解放されていない接続数が上限に達したため、「MySQL サーバーに接続できません。接続が多すぎます」という mysql 1040 エラーが発生することがよくあります。 MySQL の。通常、mysql 接続の最大数はデフォルトで 100 ですが、最大値は 16384 に達する可能性があります。

1、查看最大连接数
show variables like '%max_connections%';
2、修改最大连接数
set GLOBAL max_connections = 16384;

Kettle データベースの挿入操作の最適化

mysql テーブルの出力時に速度が低下する原因は、ネットワーク リンクのプロパティが
useServerPrepStmts=false  
rewriteBatchedStatements=true  
useCompression=trueに設定されていることが原因である可能性があります。

Kettle では複数のスレッドが可能

分散メソッドを使用してデータを処理できますが、データベースの読み取りおよび書き込み操作に関しては、このメソッドを慎重に使用してください。

データセットのサイズを適切に増やす

Java 仮想マシンのメモリを増やす

ALTER TABLE 出力コミットレコード番号

 

最適化の結果

おすすめ

転載: blog.csdn.net/weixin_41160534/article/details/103445090