ℹ️ Skipped - page is already crawled
| Filter | Status | Condition | Details |
|---|---|---|---|
| HTTP status | PASS | download_http_code = 200 | HTTP 200 |
| Age cutoff | PASS | download_stamp > now() - 6 MONTH | 0 months ago |
| History drop | PASS | isNull(history_drop_reason) | No drop reason |
| Spam/ban | PASS | fh_dont_index != 1 AND ml_spam_score = 0 | ml_spam_score=0 |
| Canonical | PASS | meta_canonical IS NULL OR = '' OR = src_unparsed | Not set |
| Property | Value |
|---|---|
| URL | https://clickhouse.com/docs/intro |
| Last Crawled | 2026-04-06 00:30:58 (23 hours ago) |
| First Indexed | 2025-02-21 00:52:23 (1 year ago) |
| HTTP Status Code | 200 |
| Meta Title | What is ClickHouse? | ClickHouse Docs |
| Meta Description | ClickHouse® is a column-oriented SQL database management system (DBMS) for online analytical processing (OLAP). It is available as both an open-source software and a cloud offering. |
| Meta Canonical | null |
| Boilerpipe Text | ClickHouse® is a high-performance, column-oriented SQL database management system (DBMS) for online analytical processing (OLAP). It is available as both an
open-source software
and a
cloud offering
.
What are analytics?
Analytics, also known as OLAP (Online Analytical Processing), refers to SQL queries with complex calculations (e.g., aggregations, string processing, arithmetic) over massive datasets.
Unlike transactional queries (or OLTP, Online Transaction Processing) that read and write just a few rows per query and, therefore, complete in milliseconds, analytics queries routinely process billions and trillions of rows.
In many use cases,
analytics queries must be "real-time"
, i.e., return a result in less than one second.
Row-oriented vs. column-oriented storage
Such a level of performance can only be achieved with the right data "orientation".
Databases store data either
row-oriented or column-oriented
.
In a row-oriented database, consecutive table rows are sequentially stored one after the other. This layout allows to retrieve rows quickly as the column values of each row are stored together.
ClickHouse is a column-oriented database. In such systems, tables are stored as a collection of columns, i.e. the values of each column are stored sequentially one after the other. This layout makes it harder to restore single rows (as there are now gaps between the row values) but column operations such as filters or aggregation become much faster than in a row-oriented database.
The difference is best explained with an example query running over 100 million rows of
real-world anonymized web analytics data
:
SELECT
MobilePhoneModel
,
COUNT
(
)
AS
c
FROM
metrica
.
hits
WHERE
RegionID
=
229
AND
EventDate
>=
'2013-07-01'
AND
EventDate
<=
'2013-07-31'
AND
MobilePhone
!=
0
AND
MobilePhoneModel
not
in
[
''
,
'iPad'
]
GROUP
BY
MobilePhoneModel
ORDER
BY
c
DESC
LIMIT
8
;
You can
run this query on the ClickHouse SQL Playground
that selects and filters
just a few out of over 100
existing columns, returning the result within milliseconds:
As you can see in the stats section in the above diagram, the query processed 100 million rows in 92 milliseconds, a throughput of approximately over 1 billion rows per second or just under 7 GB of data transferred per second.
Row-oriented DBMS
In a row-oriented database, even though the query above only processes a few out of the existing columns, the system still needs to load the data from other existing columns from disk to memory. The reason for that is that data is stored on disk in chunks called
blocks
(usually fixed sizes, e.g., 4 KB or 8 KB). Blocks are the smallest units of data read from disk to memory. When an application or database requests data, the operating system's disk I/O subsystem reads the required blocks from the disk. Even if only part of a block is needed, the entire block is read into memory (this is due to disk and file system design):
Column-oriented DBMS
Because the values of each column are stored sequentially one after the other on disk, no unnecessary data is loaded when the query from above is run.
Because the block-wise storage and transfer from disk to memory is aligned with the data access pattern of analytical queries, only the columns required for a query are read from disk, avoiding unnecessary I/O for unused data. This is
much faster
compared to row-based storage, where entire rows (including irrelevant columns) are read:
Data replication and integrity
ClickHouse uses an asynchronous multi-master replication scheme to ensure that data is stored redundantly on multiple nodes. After being written to any available replica, all the remaining replicas retrieve their copy in the background. The system maintains identical data on different replicas. Recovery after most failures is performed automatically, or semi-automatically in complex cases.
Role-Based Access Control
ClickHouse implements user account management using SQL queries and allows for role-based access control configuration similar to what can be found in ANSI SQL standard and popular relational database management systems.
SQL support
ClickHouse supports a
declarative query language based on SQL
that is identical to the ANSI SQL standard in many cases. Supported query clauses include
GROUP BY
,
ORDER BY
, subqueries in
FROM
,
JOIN
clause,
IN
operator,
window functions
and scalar subqueries.
Approximate calculation
ClickHouse provides ways to trade accuracy for performance. For example, some of its aggregate functions calculate the distinct value count, the median, and quantiles approximately. Also, queries can be run on a sample of the data to compute an approximate result quickly. Finally, aggregations can be run with a limited number of keys instead of for all keys. Depending on how skewed the distribution of the keys is, this can provide a reasonably accurate result that uses far fewer resources than an exact calculation.
Adaptive join algorithms
ClickHouse chooses the join algorithm adaptively: it starts with fast hash joins and falls back to merge joins if there's more than one large table.
Superior query performance
ClickHouse is well known for having extremely fast query performance.
To learn why ClickHouse is so fast, see the
Why is ClickHouse fast?
guide. |
| Markdown | [Skip to main content](https://clickhouse.com/docs/intro#__docusaurus_skipToContent_fallback)
[](https://clickhouse.com/)
- [Products](https://clickhouse.com/docs/intro)
- [ClickHouse Cloud Best way to use ClickHouse. Available on AWS, GCP, and Azure.](https://clickhouse.com/cloud)
- [BYOC (Bring Your Own Cloud) The fully managed ClickHouse Cloud service, Can be deployed in your AWS account.](https://clickhouse.com/cloud/bring-your-own-cloud)
- [ClickHouse Set up a database with open-source ClickHouse. ClickHouse](https://clickhouse.com/clickhouse)
- [Discover more than 100 integrations.](https://clickhouse.com/integrations)
[Discover more than 100 integrations.](https://clickhouse.com/integrations)
- [Use cases](https://clickhouse.com/docs/intro)
- [Real-time analytics](https://clickhouse.com/use-cases/real-time-analytics)
- [Machine Learning & Generative AI](https://clickhouse.com/use-cases/machine-learning-and-data-science)
- [Business Intelligence](https://clickhouse.com/use-cases/data-warehousing)
- [Logs, Events, Traces](https://clickhouse.com/use-cases/observability)
- [All use cases](https://clickhouse.com/use-cases)
[All use cases](https://clickhouse.com/use-cases)
- [Documentation](https://clickhouse.com/docs)
- [Resources](https://clickhouse.com/docs/intro)
- [User stories](https://clickhouse.com/user-stories)
- [Blog](https://clickhouse.com/blog)
- [Events](https://clickhouse.com/company/events)
- [Learning and certification](https://clickhouse.com/learn)
- [Comparison](https://clickhouse.com/docs/intro)
- [BigQuery](https://clickhouse.com/comparison/bigquery)
- [PostgreSQL](https://clickhouse.com/comparison/postgresql)
- [Redshift](https://clickhouse.com/comparison/redshift)
- [Rockset](https://clickhouse.com/comparison/rockset)
- [Snowflake](https://clickhouse.com/comparison/snowflake)
- [Video](https://clickhouse.com/videos)
- [Demo](https://clickhouse.com/demos)
- [Pricing](https://clickhouse.com/pricing)
- [Contact](https://clickhouse.com/company/contact?loc=nav)
[46\.7k](https://github.com/ClickHouse/ClickHouse?utm_source=clickhouse&utm_medium=website&utm_campaign=website-nav)
[Search`Ctrl``K`](https://clickhouse.com/docs/search)
[Sign in](https://console.clickhouse.cloud/signIn?loc=docs-nav-signIn-cta&glxid=c7349435-7e3e-420b-8a2a-7da281a35af5&pagePath=%2Fdocs%2Fintro&origPath=%2Fdocs%2Fintro&utm_ga=GA1.1.1790532631.1775435460)
[Get started](https://console.clickhouse.cloud/signUp?loc=docs-nav-signUp-cta&glxid=c7349435-7e3e-420b-8a2a-7da281a35af5&pagePath=%2Fdocs%2Fintro&origPath=%2Fdocs%2Fintro&utm_ga=GA1.1.1790532631.1775435460)
[Get started](https://clickhouse.com/docs/introduction-clickhouse)
[Cloud](https://clickhouse.com/docs/cloud/overview)
[Manage data](https://clickhouse.com/docs/updating-data)
[Server admin](https://clickhouse.com/docs/guides/manage-and-deploy-index)
[Reference](https://clickhouse.com/docs/sql-reference)
[Integrations](https://clickhouse.com/docs/integrations)
[ClickStack](https://clickhouse.com/docs/use-cases/observability/clickstack/overview)
[chDB](https://clickhouse.com/docs/chdb)
[About](https://clickhouse.com/docs/about)
[Knowledge Base](https://clickhouse.com/docs/knowledgebase)
[English](https://clickhouse.com/docs/intro)
- [English](https://clickhouse.com/docs/intro)
- [日本語](https://clickhouse.com/docs/jp/intro)
- [中文](https://clickhouse.com/docs/zh/intro)
- [Русский](https://clickhouse.com/docs/ru/intro)
- [한국어](https://clickhouse.com/docs/ko/intro)
[Skip to main content](https://clickhouse.com/docs/intro#__docusaurus_skipToContent_fallback)
[](https://clickhouse.com/)
- [Products](https://clickhouse.com/docs/intro)
- [ClickHouse Cloud Best way to use ClickHouse. Available on AWS, GCP, and Azure.](https://clickhouse.com/cloud)
- [BYOC (Bring Your Own Cloud) The fully managed ClickHouse Cloud service, Can be deployed in your AWS account.](https://clickhouse.com/cloud/bring-your-own-cloud)
- [ClickHouse Set up a database with open-source ClickHouse. ClickHouse](https://clickhouse.com/clickhouse)
- [Discover more than 100 integrations.](https://clickhouse.com/integrations)
[Discover more than 100 integrations.](https://clickhouse.com/integrations)
- [Use cases](https://clickhouse.com/docs/intro)
- [Real-time analytics](https://clickhouse.com/use-cases/real-time-analytics)
- [Machine Learning & Generative AI](https://clickhouse.com/use-cases/machine-learning-and-data-science)
- [Business Intelligence](https://clickhouse.com/use-cases/data-warehousing)
- [Logs, Events, Traces](https://clickhouse.com/use-cases/observability)
- [All use cases](https://clickhouse.com/use-cases)
[All use cases](https://clickhouse.com/use-cases)
- [Documentation](https://clickhouse.com/docs)
- [Resources](https://clickhouse.com/docs/intro)
- [User stories](https://clickhouse.com/user-stories)
- [Blog](https://clickhouse.com/blog)
- [Events](https://clickhouse.com/company/events)
- [Learning and certification](https://clickhouse.com/learn)
- [Comparison](https://clickhouse.com/docs/intro)
- [BigQuery](https://clickhouse.com/comparison/bigquery)
- [PostgreSQL](https://clickhouse.com/comparison/postgresql)
- [Redshift](https://clickhouse.com/comparison/redshift)
- [Rockset](https://clickhouse.com/comparison/rockset)
- [Snowflake](https://clickhouse.com/comparison/snowflake)
- [Video](https://clickhouse.com/videos)
- [Demo](https://clickhouse.com/demos)
- [Pricing](https://clickhouse.com/pricing)
- [Contact](https://clickhouse.com/company/contact?loc=nav)
[46\.7k](https://github.com/ClickHouse/ClickHouse?utm_source=clickhouse&utm_medium=website&utm_campaign=website-nav)
[Search`Ctrl``K`](https://clickhouse.com/docs/search)
[Sign in](https://console.clickhouse.cloud/signIn?loc=docs-nav-signIn-cta&glxid=c7349435-7e3e-420b-8a2a-7da281a35af5&pagePath=%2Fdocs%2Fintro&origPath=%2Fdocs%2Fintro&utm_ga=GA1.1.1790532631.1775435460)
[Get started](https://console.clickhouse.cloud/signUp?loc=docs-nav-signUp-cta&glxid=c7349435-7e3e-420b-8a2a-7da281a35af5&pagePath=%2Fdocs%2Fintro&origPath=%2Fdocs%2Fintro&utm_ga=GA1.1.1790532631.1775435460)
[Get started](https://clickhouse.com/docs/introduction-clickhouse)
[Cloud](https://clickhouse.com/docs/cloud/overview)
[Manage data](https://clickhouse.com/docs/updating-data)
[Server admin](https://clickhouse.com/docs/guides/manage-and-deploy-index)
[Reference](https://clickhouse.com/docs/sql-reference)
[Integrations](https://clickhouse.com/docs/integrations)
[ClickStack](https://clickhouse.com/docs/use-cases/observability/clickstack/overview)
[chDB](https://clickhouse.com/docs/chdb)
[About](https://clickhouse.com/docs/about)
[Knowledge Base](https://clickhouse.com/docs/knowledgebase)
[English](https://clickhouse.com/docs/intro)
- [English](https://clickhouse.com/docs/intro)
- [日本語](https://clickhouse.com/docs/jp/intro)
- [中文](https://clickhouse.com/docs/zh/intro)
- [Русский](https://clickhouse.com/docs/ru/intro)
- [한국어](https://clickhouse.com/docs/ko/intro)
[Search`Ctrl``K`](https://clickhouse.com/docs/search)
- [Introduction](https://clickhouse.com/docs/introduction-clickhouse)
- [What is ClickHouse?](https://clickhouse.com/docs/intro)
- [Quick start](https://clickhouse.com/docs/get-started/quick-start)
- [Cloud](https://clickhouse.com/docs/getting-started/quick-start/cloud)
- [OSS](https://clickhouse.com/docs/getting-started/quick-start/oss)
- [Advanced tutorial](https://clickhouse.com/docs/tutorial)
- [Install](https://clickhouse.com/docs/install)
- [Debian/Ubuntu](https://clickhouse.com/docs/install/debian_ubuntu)
- [Redhat/CentOS](https://clickhouse.com/docs/install/redhat)
- [Other Linux](https://clickhouse.com/docs/install/linux_other)
- [NixOS](https://clickhouse.com/docs/install/nixos)
- [MacOS](https://clickhouse.com/docs/install/macOS)
- [Windows](https://clickhouse.com/docs/install/windows)
- [Docker](https://clickhouse.com/docs/install/docker)
- [Quick install](https://clickhouse.com/docs/install/quick-install-curl)
- [Advanced install](https://clickhouse.com/docs/install/advanced)
- [Deployment modes](https://clickhouse.com/docs/deployment-modes)
- [Concepts](https://clickhouse.com/docs/concepts)
- [What is OLAP?](https://clickhouse.com/docs/concepts/olap)
- [Why is ClickHouse so fast?](https://clickhouse.com/docs/concepts/why-clickhouse-is-so-fast)
- [Why is ClickHouse unique?](https://clickhouse.com/docs/about-us/distinctive-features)
- [Glossary](https://clickhouse.com/docs/concepts/glossary)
- [FAQ](https://clickhouse.com/docs/concepts/faq)
- [Starter guides](https://clickhouse.com/docs/starter-guides)
- [Creating tables](https://clickhouse.com/docs/guides/creating-tables)
- [Updating and deleting data](https://clickhouse.com/docs/guides/developer/mutations)
- [Selecting data](https://clickhouse.com/docs/guides/writing-queries)
- [Generating random test data](https://clickhouse.com/docs/guides/generating-test-data)
- [Inserting ClickHouse data](https://clickhouse.com/docs/guides/inserting-data)
- [Working with arrays in ClickHouse](https://clickhouse.com/docs/guides/working-with-arrays)
- [Working with JOINs in ClickHouse](https://clickhouse.com/docs/guides/working-with-joins)
- [Troubleshooting](https://clickhouse.com/docs/troubleshooting)
- [Best practices](https://clickhouse.com/docs/best-practices)
- [Sizing and hardware recommendations](https://clickhouse.com/docs/guides/sizing-and-hardware-recommendations)
- [Choosing a primary key](https://clickhouse.com/docs/best-practices/choosing-a-primary-key)
- [Selecting data types](https://clickhouse.com/docs/best-practices/select-data-types)
- [Use materialized views](https://clickhouse.com/docs/best-practices/use-materialized-views)
- [Minimize and optimize JOINs](https://clickhouse.com/docs/best-practices/minimize-optimize-joins)
- [Choosing a partitioning key](https://clickhouse.com/docs/best-practices/choosing-a-partitioning-key)
- [Selecting an insert strategy](https://clickhouse.com/docs/best-practices/selecting-an-insert-strategy)
- [Data skipping indices](https://clickhouse.com/docs/best-practices/use-data-skipping-indices-where-appropriate)
- [Avoid mutations](https://clickhouse.com/docs/best-practices/avoid-mutations)
- [Avoid optimize final](https://clickhouse.com/docs/best-practices/avoid-optimize-final)
- [Using JSON](https://clickhouse.com/docs/best-practices/use-json-where-appropriate)
- [Use case guides](https://clickhouse.com/docs/use-cases)
- [Observability](https://clickhouse.com/docs/use-cases/observability)
- [Time-series](https://clickhouse.com/docs/use-cases/time-series)
- [Data lake](https://clickhouse.com/docs/use-cases/data-lake)
- [AI/ML](https://clickhouse.com/docs/use-cases/AI/ask-ai)
- [Example datasets](https://clickhouse.com/docs/getting-started/example-datasets)
- [Tips and community wisdom](https://clickhouse.com/docs/tips-and-tricks/community-wisdom)
- [Introduction](https://clickhouse.com/docs/introduction-clickhouse)
- What is ClickHouse?
[Edit this page](https://github.com/ClickHouse/clickhouse-docs/blob/main/docs/intro.md)
# What is ClickHouse?
ClickHouse® is a high-performance, column-oriented SQL database management system (DBMS) for online analytical processing (OLAP). It is available as both an [open-source software](https://github.com/ClickHouse/ClickHouse) and a [cloud offering](https://clickhouse.com/cloud).
## What are analytics?[](https://clickhouse.com/docs/intro#what-are-analytics "Direct link to What are analytics?")
Analytics, also known as OLAP (Online Analytical Processing), refers to SQL queries with complex calculations (e.g., aggregations, string processing, arithmetic) over massive datasets.
Unlike transactional queries (or OLTP, Online Transaction Processing) that read and write just a few rows per query and, therefore, complete in milliseconds, analytics queries routinely process billions and trillions of rows.
In many use cases, [analytics queries must be "real-time"](https://clickhouse.com/engineering-resources/what-is-real-time-analytics), i.e., return a result in less than one second.
## Row-oriented vs. column-oriented storage[](https://clickhouse.com/docs/intro#row-oriented-vs-column-oriented-storage "Direct link to Row-oriented vs. column-oriented storage")
Such a level of performance can only be achieved with the right data "orientation".
Databases store data either [row-oriented or column-oriented](https://clickhouse.com/engineering-resources/what-is-columnar-database).
In a row-oriented database, consecutive table rows are sequentially stored one after the other. This layout allows to retrieve rows quickly as the column values of each row are stored together.
ClickHouse is a column-oriented database. In such systems, tables are stored as a collection of columns, i.e. the values of each column are stored sequentially one after the other. This layout makes it harder to restore single rows (as there are now gaps between the row values) but column operations such as filters or aggregation become much faster than in a row-oriented database.
The difference is best explained with an example query running over 100 million rows of [real-world anonymized web analytics data](https://clickhouse.com/docs/getting-started/example-datasets/metrica):
```
SELECT MobilePhoneModel, COUNT() AS c
FROM metrica.hits
WHERE
RegionID = 229
AND EventDate >= '2013-07-01'
AND EventDate <= '2013-07-31'
AND MobilePhone != 0
AND MobilePhoneModel not in ['', 'iPad']
GROUP BY MobilePhoneModel
ORDER BY c DESC
LIMIT 8;
```
You can [run this query on the ClickHouse SQL Playground](https://sql.clickhouse.com/?query=U0VMRUNUIE1vYmlsZVBob25lTW9kZWwsIENPVU5UKCkgQVMgYyAKRlJPTSBtZXRyaWNhLmhpdHMgCldIRVJFIAogICAgICBSZWdpb25JRCA9IDIyOSAKICBBTkQgRXZlbnREYXRlID49ICcyMDEzLTA3LTAxJyAKICBBTkQgRXZlbnREYXRlIDw9ICcyMDEzLTA3LTMxJyAKICBBTkQgTW9iaWxlUGhvbmUgIT0gMCAKICBBTkQgTW9iaWxlUGhvbmVNb2RlbCBub3QgaW4gWycnLCAnaVBhZCddIApHUk9VUCBCWSBNb2JpbGVQaG9uZU1vZGVsCk9SREVSIEJZIGMgREVTQyAKTElNSVQgODs&chart=eyJ0eXBlIjoicGllIiwiY29uZmlnIjp7InhheGlzIjoiTW9iaWxlUGhvbmVNb2RlbCIsInlheGlzIjoiYyJ9fQ&run_query=true) that selects and filters [just a few out of over 100](https://sql.clickhouse.com/?query=U0VMRUNUIG5hbWUKRlJPTSBzeXN0ZW0uY29sdW1ucwpXSEVSRSBkYXRhYmFzZSA9ICdtZXRyaWNhJyBBTkQgdGFibGUgPSAnaGl0cyc7&tab=results&run_query=true) existing columns, returning the result within milliseconds:

As you can see in the stats section in the above diagram, the query processed 100 million rows in 92 milliseconds, a throughput of approximately over 1 billion rows per second or just under 7 GB of data transferred per second.
**Row-oriented DBMS**
In a row-oriented database, even though the query above only processes a few out of the existing columns, the system still needs to load the data from other existing columns from disk to memory. The reason for that is that data is stored on disk in chunks called [blocks](https://en.wikipedia.org/wiki/Block_\(data_storage\)) (usually fixed sizes, e.g., 4 KB or 8 KB). Blocks are the smallest units of data read from disk to memory. When an application or database requests data, the operating system's disk I/O subsystem reads the required blocks from the disk. Even if only part of a block is needed, the entire block is read into memory (this is due to disk and file system design):

**Column-oriented DBMS**
Because the values of each column are stored sequentially one after the other on disk, no unnecessary data is loaded when the query from above is run. Because the block-wise storage and transfer from disk to memory is aligned with the data access pattern of analytical queries, only the columns required for a query are read from disk, avoiding unnecessary I/O for unused data. This is [much faster](https://benchmark.clickhouse.com/) compared to row-based storage, where entire rows (including irrelevant columns) are read:

## Data replication and integrity[](https://clickhouse.com/docs/intro#data-replication-and-integrity "Direct link to Data replication and integrity")
ClickHouse uses an asynchronous multi-master replication scheme to ensure that data is stored redundantly on multiple nodes. After being written to any available replica, all the remaining replicas retrieve their copy in the background. The system maintains identical data on different replicas. Recovery after most failures is performed automatically, or semi-automatically in complex cases.
## Role-Based Access Control[](https://clickhouse.com/docs/intro#role-based-access-control "Direct link to Role-Based Access Control")
ClickHouse implements user account management using SQL queries and allows for role-based access control configuration similar to what can be found in ANSI SQL standard and popular relational database management systems.
## SQL support[](https://clickhouse.com/docs/intro#sql-support "Direct link to SQL support")
ClickHouse supports a [declarative query language based on SQL](https://clickhouse.com/docs/sql-reference) that is identical to the ANSI SQL standard in many cases. Supported query clauses include [GROUP BY](https://clickhouse.com/docs/sql-reference/statements/select/group-by), [ORDER BY](https://clickhouse.com/docs/sql-reference/statements/select/order-by), subqueries in [FROM](https://clickhouse.com/docs/sql-reference/statements/select/from), [JOIN](https://clickhouse.com/docs/sql-reference/statements/select/join) clause, [IN](https://clickhouse.com/docs/sql-reference/operators/in) operator, [window functions](https://clickhouse.com/docs/sql-reference/window-functions) and scalar subqueries.
## Approximate calculation[](https://clickhouse.com/docs/intro#approximate-calculation "Direct link to Approximate calculation")
ClickHouse provides ways to trade accuracy for performance. For example, some of its aggregate functions calculate the distinct value count, the median, and quantiles approximately. Also, queries can be run on a sample of the data to compute an approximate result quickly. Finally, aggregations can be run with a limited number of keys instead of for all keys. Depending on how skewed the distribution of the keys is, this can provide a reasonably accurate result that uses far fewer resources than an exact calculation.
## Adaptive join algorithms[](https://clickhouse.com/docs/intro#adaptive-join-algorithms "Direct link to Adaptive join algorithms")
ClickHouse chooses the join algorithm adaptively: it starts with fast hash joins and falls back to merge joins if there's more than one large table.
## Superior query performance[](https://clickhouse.com/docs/intro#superior-query-performance "Direct link to Superior query performance")
ClickHouse is well known for having extremely fast query performance. To learn why ClickHouse is so fast, see the [Why is ClickHouse fast?](https://clickhouse.com/docs/concepts/why-clickhouse-is-so-fast) guide.
[Previous Introduction](https://clickhouse.com/docs/introduction-clickhouse)
[Next Quick start](https://clickhouse.com/docs/get-started/quick-start)
- [What are analytics?](https://clickhouse.com/docs/intro#what-are-analytics)
- [Row-oriented vs. column-oriented storage](https://clickhouse.com/docs/intro#row-oriented-vs-column-oriented-storage)
- [Data replication and integrity](https://clickhouse.com/docs/intro#data-replication-and-integrity)
- [Role-Based Access Control](https://clickhouse.com/docs/intro#role-based-access-control)
- [SQL support](https://clickhouse.com/docs/intro#sql-support)
- [Approximate calculation](https://clickhouse.com/docs/intro#approximate-calculation)
- [Adaptive join algorithms](https://clickhouse.com/docs/intro#adaptive-join-algorithms)
- [Superior query performance](https://clickhouse.com/docs/intro#superior-query-performance)
Was this page helpful?
###### Try ClickHouse Cloud for FREE
Separation of storage and compute, automatic scaling, built-in SQL console, and lots more. \$300 in free credits when signing up.
[Try it for Free](https://console.clickhouse.cloud/signUp?loc=doc-card-banner&glxid=c7349435-7e3e-420b-8a2a-7da281a35af5&pagePath=%2Fdocs%2Fintro&origPath=%2Fdocs%2Fintro&utm_ga=GA1.1.1790532631.1775435460)
© 2016–2026 ClickHouse, Inc.
[Trademark](https://clickhouse.com/legal/trademark-policy)·[Privacy](https://clickhouse.com/legal/privacy-policy)·[Security](https://trust.clickhouse.com/)·[Terms of Service](https://clickhouse.com/legal/agreements/terms-of-service)

© 2016–2026 ClickHouse, Inc.
[Trademark](https://clickhouse.com/legal/trademark-policy)·[Privacy](https://clickhouse.com/legal/privacy-policy)·[Security](https://trust.clickhouse.com/)·[Terms of Service](https://clickhouse.com/legal/agreements/terms-of-service)

[](https://clickhouse.com/)
EN
- Get started▼
- Cloud▼
- Manage data▼
- Server admin▼
- Reference▼
- Integrations▼
- ClickStack▼
- chDB▼
- About▼
[](https://clickhouse.com/)
EN
main-menu
- Introduction▼
- [What is ClickHouse?](https://clickhouse.com/docs/intro)
- Quick start▼
- [Advanced tutorial](https://clickhouse.com/docs/tutorial)
- Install▼
- [Deployment modes](https://clickhouse.com/docs/deployment-modes)
- Concepts▼
- Starter guides▼
- [Troubleshooting](https://clickhouse.com/docs/troubleshooting)
- Best practices▼
- Use case guides▼
- Example datasets▼
- Tips and community wisdom▼ |
| Readable Markdown | ClickHouse® is a high-performance, column-oriented SQL database management system (DBMS) for online analytical processing (OLAP). It is available as both an [open-source software](https://github.com/ClickHouse/ClickHouse) and a [cloud offering](https://clickhouse.com/cloud).
## What are analytics?[](https://clickhouse.com/docs/intro#what-are-analytics "Direct link to What are analytics?")
Analytics, also known as OLAP (Online Analytical Processing), refers to SQL queries with complex calculations (e.g., aggregations, string processing, arithmetic) over massive datasets.
Unlike transactional queries (or OLTP, Online Transaction Processing) that read and write just a few rows per query and, therefore, complete in milliseconds, analytics queries routinely process billions and trillions of rows.
In many use cases, [analytics queries must be "real-time"](https://clickhouse.com/engineering-resources/what-is-real-time-analytics), i.e., return a result in less than one second.
## Row-oriented vs. column-oriented storage[](https://clickhouse.com/docs/intro#row-oriented-vs-column-oriented-storage "Direct link to Row-oriented vs. column-oriented storage")
Such a level of performance can only be achieved with the right data "orientation".
Databases store data either [row-oriented or column-oriented](https://clickhouse.com/engineering-resources/what-is-columnar-database).
In a row-oriented database, consecutive table rows are sequentially stored one after the other. This layout allows to retrieve rows quickly as the column values of each row are stored together.
ClickHouse is a column-oriented database. In such systems, tables are stored as a collection of columns, i.e. the values of each column are stored sequentially one after the other. This layout makes it harder to restore single rows (as there are now gaps between the row values) but column operations such as filters or aggregation become much faster than in a row-oriented database.
The difference is best explained with an example query running over 100 million rows of [real-world anonymized web analytics data](https://clickhouse.com/docs/getting-started/example-datasets/metrica):
```
SELECT MobilePhoneModel, COUNT() AS c
FROM metrica.hits
WHERE
RegionID = 229
AND EventDate >= '2013-07-01'
AND EventDate <= '2013-07-31'
AND MobilePhone != 0
AND MobilePhoneModel not in ['', 'iPad']
GROUP BY MobilePhoneModel
ORDER BY c DESC
LIMIT 8;
```
You can [run this query on the ClickHouse SQL Playground](https://sql.clickhouse.com/?query=U0VMRUNUIE1vYmlsZVBob25lTW9kZWwsIENPVU5UKCkgQVMgYyAKRlJPTSBtZXRyaWNhLmhpdHMgCldIRVJFIAogICAgICBSZWdpb25JRCA9IDIyOSAKICBBTkQgRXZlbnREYXRlID49ICcyMDEzLTA3LTAxJyAKICBBTkQgRXZlbnREYXRlIDw9ICcyMDEzLTA3LTMxJyAKICBBTkQgTW9iaWxlUGhvbmUgIT0gMCAKICBBTkQgTW9iaWxlUGhvbmVNb2RlbCBub3QgaW4gWycnLCAnaVBhZCddIApHUk9VUCBCWSBNb2JpbGVQaG9uZU1vZGVsCk9SREVSIEJZIGMgREVTQyAKTElNSVQgODs&chart=eyJ0eXBlIjoicGllIiwiY29uZmlnIjp7InhheGlzIjoiTW9iaWxlUGhvbmVNb2RlbCIsInlheGlzIjoiYyJ9fQ&run_query=true) that selects and filters [just a few out of over 100](https://sql.clickhouse.com/?query=U0VMRUNUIG5hbWUKRlJPTSBzeXN0ZW0uY29sdW1ucwpXSEVSRSBkYXRhYmFzZSA9ICdtZXRyaWNhJyBBTkQgdGFibGUgPSAnaGl0cyc7&tab=results&run_query=true) existing columns, returning the result within milliseconds:
As you can see in the stats section in the above diagram, the query processed 100 million rows in 92 milliseconds, a throughput of approximately over 1 billion rows per second or just under 7 GB of data transferred per second.
**Row-oriented DBMS**
In a row-oriented database, even though the query above only processes a few out of the existing columns, the system still needs to load the data from other existing columns from disk to memory. The reason for that is that data is stored on disk in chunks called [blocks](https://en.wikipedia.org/wiki/Block_\(data_storage\)) (usually fixed sizes, e.g., 4 KB or 8 KB). Blocks are the smallest units of data read from disk to memory. When an application or database requests data, the operating system's disk I/O subsystem reads the required blocks from the disk. Even if only part of a block is needed, the entire block is read into memory (this is due to disk and file system design):

**Column-oriented DBMS**
Because the values of each column are stored sequentially one after the other on disk, no unnecessary data is loaded when the query from above is run. Because the block-wise storage and transfer from disk to memory is aligned with the data access pattern of analytical queries, only the columns required for a query are read from disk, avoiding unnecessary I/O for unused data. This is [much faster](https://benchmark.clickhouse.com/) compared to row-based storage, where entire rows (including irrelevant columns) are read:

## Data replication and integrity[](https://clickhouse.com/docs/intro#data-replication-and-integrity "Direct link to Data replication and integrity")
ClickHouse uses an asynchronous multi-master replication scheme to ensure that data is stored redundantly on multiple nodes. After being written to any available replica, all the remaining replicas retrieve their copy in the background. The system maintains identical data on different replicas. Recovery after most failures is performed automatically, or semi-automatically in complex cases.
## Role-Based Access Control[](https://clickhouse.com/docs/intro#role-based-access-control "Direct link to Role-Based Access Control")
ClickHouse implements user account management using SQL queries and allows for role-based access control configuration similar to what can be found in ANSI SQL standard and popular relational database management systems.
## SQL support[](https://clickhouse.com/docs/intro#sql-support "Direct link to SQL support")
ClickHouse supports a [declarative query language based on SQL](https://clickhouse.com/docs/sql-reference) that is identical to the ANSI SQL standard in many cases. Supported query clauses include [GROUP BY](https://clickhouse.com/docs/sql-reference/statements/select/group-by), [ORDER BY](https://clickhouse.com/docs/sql-reference/statements/select/order-by), subqueries in [FROM](https://clickhouse.com/docs/sql-reference/statements/select/from), [JOIN](https://clickhouse.com/docs/sql-reference/statements/select/join) clause, [IN](https://clickhouse.com/docs/sql-reference/operators/in) operator, [window functions](https://clickhouse.com/docs/sql-reference/window-functions) and scalar subqueries.
## Approximate calculation[](https://clickhouse.com/docs/intro#approximate-calculation "Direct link to Approximate calculation")
ClickHouse provides ways to trade accuracy for performance. For example, some of its aggregate functions calculate the distinct value count, the median, and quantiles approximately. Also, queries can be run on a sample of the data to compute an approximate result quickly. Finally, aggregations can be run with a limited number of keys instead of for all keys. Depending on how skewed the distribution of the keys is, this can provide a reasonably accurate result that uses far fewer resources than an exact calculation.
## Adaptive join algorithms[](https://clickhouse.com/docs/intro#adaptive-join-algorithms "Direct link to Adaptive join algorithms")
ClickHouse chooses the join algorithm adaptively: it starts with fast hash joins and falls back to merge joins if there's more than one large table.
## Superior query performance[](https://clickhouse.com/docs/intro#superior-query-performance "Direct link to Superior query performance")
ClickHouse is well known for having extremely fast query performance. To learn why ClickHouse is so fast, see the [Why is ClickHouse fast?](https://clickhouse.com/docs/concepts/why-clickhouse-is-so-fast) guide. |
| Shard | 89 (laksa) |
| Root Hash | 12633450985039531489 |
| Unparsed URL | com,clickhouse!/docs/intro s443 |