メインコンテンツへスキップ
上記の仕組みから、insert のサイズにかかわらず一定のオーバーヘッドが発生することがわかります。そのため、取り込みスループットを最適化するうえで最も重要なのはバッチサイズです。挿入をバッチ化すると、総挿入時間に占めるオーバーヘッドの割合が小さくなり、処理効率が向上します。 データは少なくとも 1,000 行、理想的には 10,000~100,000 行のバッチで挿入することを推奨します。挿入回数を減らして 1 回あたりの insert を大きくすると、書き込まれるパーツ数が減り、マージ負荷を抑えられ、システム全体のリソース使用量も低減できます。 同期挿入の戦略を効果的に機能させるには、クライアント側でのバッチ化が必要です。 クライアント側でデータをバッチ化できない場合、ClickHouse はサーバー側でバッチ化を行う非同期挿入をサポートしています (非同期挿入を参照) 。
insert のサイズにかかわらず、INSERT クエリ数は 1 秒あたりおよそ 1 件に保つことを推奨します。これは、作成されたパーツがバックグラウンドでより大きなパーツへマージされるためです (読み取りクエリ向けにデータを最適化するため) 。そのため、1 秒あたりに送信する INSERT クエリが多すぎると、バックグラウンドでのマージが新しいパーツの生成に追いつけなくなることがあります。ただし、非同期挿入を使用する場合は、1 秒あたりの INSERT クエリ数をさらに増やすことができます (非同期挿入 を参照) 。
最終更新日 2026年6月10日