> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-parallel-read-in-order-multi-part.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# ClickHouse は高頻度・高同時実行のクエリをサポートしていますか？

> ClickHouse は高い QPS と高い同時実行性に対応しています

はい。ClickHouse は、外部ユーザーに直接サービスを提供できるリアルタイム分析アプリケーション向けに設計されています。履歴データとリアルタイムの挿入を組み合わせながら、ペタバイト規模のデータベースに対して、低レイテンシ (10 ミリ秒未満) かつ高い同時実行性 (毎秒 10,000 件を超えるクエリ) で分析クエリを処理できます。

<h2 id="what-makes-high-concurrency-possible">
  高い同時実行性を可能にする要素
</h2>

個々のクエリを高速に実行することが、高い QPS の基盤となります。各クエリの処理量が少ないほど、サーバーが同時に実行できるクエリ数は増えます。クエリごとの処理を削減する主な機能は次のとおりです。

* クエリに一致しないデータの読み取りをスキップする、MergeTree テーブルエンジンファミリーの[スパースプライマリ索引](/ja/guides/clickhouse/data-modelling/sparse-primary-indexes)。
* 繰り返し実行される `SELECT` クエリに対してキャッシュ済みの結果を直接返す、[クエリキャッシュ](/ja/concepts/features/performance/caches/query-cache)などのキャッシュ。
* 挿入時にデータを事前計算し、ClickHouse が自動的に選択できる[プロジェクション](/ja/concepts/features/projections/projections)と、事前計算された結果を別のターゲットテーブルに格納し、クエリから直接読み取れるようにする[materialized view](/ja/concepts/features/materialized-views/index)。

<h2 id="controlling-and-limiting-concurrency">
  同時実行数の制御と制限
</h2>

デフォルトでは、ClickHouse OSS は同時実行クエリ数を制限しません。ClickHouse Cloud では、`max_concurrent_queries_for_all_users` はデフォルトで `1000` に設定されています。制限は複数のレベルで設定できます。

* [`max_concurrent_queries`](/ja/reference/settings/server-settings/settings/max-concurrent#max_concurrent_queries) は、サーバーで同時に実行されるクエリの合計数を制限します。[`max_concurrent_insert_queries`](/ja/reference/settings/server-settings/settings/max-concurrent#max_concurrent_insert_queries) と [`max_concurrent_select_queries`](/ja/reference/settings/server-settings/settings/max-concurrent#max_concurrent_select_queries) は、それぞれ `INSERT` クエリと `SELECT` クエリに同じ制限を適用します。いずれもデフォルトは `0` (無制限) です。
* [`max_concurrent_queries_for_user`](/ja/reference/settings/session-settings/max-concurrent#max_concurrent_queries_for_user) と [`max_concurrent_queries_for_all_users`](/ja/reference/settings/session-settings/max-concurrent#max_concurrent_queries_for_all_users) は、ユーザーごと、または全ユーザーを対象に同時実行数を制限します。

<h2 id="isolating-workloads">
  ワークロードの分離
</h2>

同時実行されるワークロード同士が干渉しないよう、ClickHouse には次の機能が用意されています。

* ワークロード間での CPU、メモリ、I/O の共有を制御する[ワークロードスケジューリング](/ja/concepts/features/configuration/server-config/workload-scheduling)。
* 一定期間内のユーザーごとのリソース使用量を制限する[クォータ](/ja/concepts/features/configuration/server-config/quotas)。
* 個々のクエリによる過剰なリソース消費を防ぐ[クエリ複雑度の制限](/ja/concepts/features/configuration/settings/query-complexity)。
* ユーザーごとにクエリ可能な範囲を制限する組み込みの[ロールベースアクセス制御](/ja/concepts/features/security/access-rights)。

これらにより、ClickHouse は分析データ上のサービングレイヤーとして適しています。
