浅谈OLTP和OLAP的区别

二者概念

OLTP(on-line transaction processing)为联机事务处理。

OLAP(On-Line Analytical Processing)为联机分析处理。

简单来说,OLTP是做事务处理,OLAP是做分析处理。

在数据库的操作层面来看,OLTP主要是对数据的增删改,侧重实时性OLAP是对数据的查询,侧重大数据量查询

场景和应用的区别

  1. 实时性要求不同:OLTP实时性要求高,OLTP 数据库旨在使事务应用程序仅写入所需的数据,以便尽快处理单个事务。OLAP的实时性要求不是很高,很多应用顶多是每天更新一下数据。
  2. 数据量不同:OLTP数据量不是很大,一般只读/写数十条记录,处理简单的事务。OLAP数据量大,因为OLAP支持的是动态查询,所以用户也许要通过将很多数据的统计后才能得到想要知道的信息,例如时间序列分析等等,所以处理的数据量很大。
  3. 用户和系统的面向性不同:OLTP是面向顾客的,用于事务和查询处理。OLAP是面向市场的,用于数据分析。
  4. 数据库设计不同:OLTP采用实体-联系ER模型和面向应用的数据库设计。OLAP采用星型或雪花模型和面向主题的数据库设计。
OLTP OLAP
业务目的 处理业务,如订单、合同等 业务支持决策
面向对象 业务处理人员 分析决策人员
主要工作负载 增、删、改 查询
主要衡量指标 事务吞吐量 查询响应速度(QPS)
数据库设计 3NF或BCNF 星型/雪花模型