一些术语

  • 数据库:物理操作系统文件或其他文件类型的集合。

  • 实例:MySQL数据库由后台线程以及一个共享内存组成。

  • DDLDMLDCLTCL

    DDLData Definition Language数据定义语言,如CREATE|ALTER|DROP|TRUNCATE|COMMENT|RENAME

    DMLData Manipulation Language数据操作语言,如SELECT|INSERT|UPDATE|DELETE

    DCLData Control Language数据控制语言,如GRANT|REVOKE

    TCLTransaction Control Language事务控制语言,如COMMIT|ROLLBACK|SAVEPOINT|SET TRANSACTION

  • 索引组织表

    目前的表存储方式主要分为两种:索引组织表(Index-Organized Tables)、堆表(Heap-Organized Tables)

    • oracle:默认堆表,支持索引组织表。
    • mysql:只支持索引组织表,对应的索引叫做聚集索引(clustered index)。
    • postgresql:只支持堆表

    简单的一句话来概括两者的区别就是一种数据是有序存储(按主键聚集),一种是无序存储。

  • OLTP数据库、OLAP数据库

    数据处理大致可以分成两大类:

    • 在线事务处理OLTPOnline Transaction Processing

    • 在线分析处理OLAPOnline Analytical Processing

    OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。

    OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。

  • ETL

    ETL是英文Extract-Transform-Load的缩写,用来描述将数据从来源端经过

    抽取(extract)、转换(transform)、加载(load)至目的端的过程。

  • 聚集索引 / 非聚集索引

    聚集索引(clustered index):按照每张表的主键构造一棵B+树,同时叶子节点中存放的即为整张表

    的行记录数据。也将聚集索引的叶子节点称为数据页。

    聚集索引的特性决定了索引组织表中数据也是索引的一部分。同B+树结构一样,每个数据也都通过一个

    双向链表来进行链接。

    优点:对于主键的排序查找和范围查找速度非常快。

    非聚集索引(non-clustered index):也被称为辅助索引(secondary index,叶子节点并不包含记录

    的全部数据。其叶子节点上存储的是聚集索引的键值,查找数据时先找到聚集索引的键值,

    再依靠聚集索引找到数据页。

  • 数据页

    聚集索引的叶子节点称为数据页。

  • 脏页

    数据库中的缓冲池是通过LRULatest Recent Used,最近最少使用)算法管理的。

    InnoDB存储引擎中页的大小默认为16KB。在LRU列表中的页被修改后,称该页为

    脏页(dirty page