MySql 技术内幕 (数据库组成和引擎)

一、数据库应用类型

1. OLTP(联机事务处理):面向交易的处理系统,有点及时处理数据,及时回答,(实时系统)

 2. OLAP(联机分析处理):复杂分析操作,侧重决策支持.

 

二、MYSQL数据库组成

 主要部分

  1. 连接池组件(connection Pool)
  2. 管理服务和工具组件(Management Service &Utilities)
  3. SQL接口组件(SQL Interface)
  4. 查询分析器组件(Parser)
  5. 优化器组件(Optimizer)
  6. 缓冲组件(caches & buffers)
  7. 插件式存储引擎(Pluggable Stroage Engines)
  8. 物理文件(File System)

三、数据库引擎

1. Innodb:

行锁设计,支持外键;
隔离级别,默认REPEATABLE, 使用next-key locking 策略避免幻读;
提供插入缓冲(insert buffer),二次写(double write),自适应哈希索引,预读等高性能和高可用的功能;
存储方式:聚集(clustered)) ,每张表按照主键顺序存储的,如果没有主键,生成一个6字节的rowid作为主键;
 
2.MyIsam
不支持事务,无表锁,支持全文索引,缓冲池只cache索引文件,不缓存数据文件
 
3.NDB存储引擎
集群,share nothing 的集群架构,数据在内存中,主键查找速度极快可在线添加存储节点,高可用,高性能,高可扩展性,
 
4.Memroy存储引勤
数据都在内存中,重启或崩溃表数据会小时,适用于临时数据临时表, 默认使用hash索引,而不是B+树索引
 
5.InfoBright
第三方,按照列而非行存储,适合OLAP应用,
 
6.NTSE
网易开发的,不支持事务, 提供压缩,行级缓存,

 

参考: 《MySQL技术内幕:SQL编程.姜承尧》

原文地址:https://www.cnblogs.com/coloz/p/12978221.html