パフォーマンスと最適化
このセクションでは、ClickHouseのパフォーマンスを向上させるためのヒントとベストプラクティスを提供します。
このセクションを読む前に、ユーザーはコアコンセプトを読むことを推奨します。
このセクションでは、パフォーマンスを改善するために必要な主要な概念をカバーしています。
| トピック | 説明 |
|---|---|
| クエリ最適化ガイド | クエリ最適化の基本を学ぶための出発点で、一般的なシナリオとクエリ実行速度を向上させるためのパフォーマンス技術をカバーしています。 |
| 主インデックス上級ガイド | ClickHouseのユニークなスパース主インデックスシステムについて深く掘り下げ、従来のデータベースとの違いや最適なインデックス戦略のベストプラクティスを紹介します。 |
| クエリの並列処理 | ClickHouseが処理レーンとmax_threads設定を使用してクエリ実行を並列化する方法や、並列実行を検査および最適化する方法を学びます。 |
| パーティションキー | パーティションキーの選択をマスターし、効率的なデータセグメントの剪定を可能にしてクエリパフォーマンスを劇的に向上させ、一般的なパーティショニングの落とし穴を回避します。 |
| データスキッピングインデックス | 不要なデータブロックをスキップし、非主キー列のフィルタリングされたクエリを加速させるために、セカンダリインデックスを戦略的に適用します。 |
PREWHERE最適化 | PREWHEREが不要なカラムを読み取る前にデータをフィルタリングすることでI/Oを自動的に削減する方法と、その効果を監視する方法を理解します。 |
| バルクインサート | データ挿入を効果的にバッチ処理して、取り込みスループットを最大化し、リソースのオーバーヘッドを削減します。 |
| 非同期インサート | サーバーサイドのバッチ処理を利用して挿入性能を改善し、クライアントサイドの複雑さを減少させ、高頻度の挿入のスループットを増加させます。 |
| 変異を避ける | 高価なUPDATEやDELETE操作を排除しながらデータの正確性とパフォーマンスを維持する、追加専用のワークフローを設計します。 |
| Nullableカラムを避ける | Nullableカラムの代わりにデフォルト値を使用することで、ストレージオーバーヘッドを削減し、クエリパフォーマンスを向上させます。 |
OPTIMIZE FINALを避ける | OPTIMIZE TABLE FINALをいつ使用すべきか、使用すべきでないかを理解しましょう。 |
| アナライザー | ClickHouseの新しいクエリアナライザーを活用して、パフォーマンスのボトルネックを特定し、クエリ実行計画を最適化して効率を向上させます。 |
| クエリプロファイリング | サンプリングクエリプロファイラーを使用してクエリ実行パターンを分析し、パフォーマンスのホットスポットを特定し、リソース使用を最適化します。 |
| クエリキャッシュ | ClickHouseの組み込みクエリ結果キャッシングを有効にして設定することで、頻繁に実行されるSELECTクエリを加速させます。 |
| ハードウェアのテスト | どのサーバーでもClickHouseのパフォーマンスベンチマークをインストールなしで実行してハードウェアの能力を評価します。(ClickHouse Cloudには適用されません) |