mysql 技术内幕

囧囧 1年前 ⋅ 1105 阅读

mysql 体系结构和存储引擎

1.1 定义数据库和实例

  • 数据库: 物理操作系统和其他信息文集类型的集合。在mysql数据库中,数据库文件可以是frm.MYD.MYI.ibd结尾的文件
  • 实例:Mysql数据库由后他线程已经一个共享内存区组成。

mysql读取配置文件顺序

/etc/my.cnf ->/etc/mysql/my.cnf -> /usr/local/mysql/etc/my.cnf -> ~/.my.cnf

mysql数据库以哪个配置为准??

mysql数据库会以读取到最后一个配置问中的参数为准

1.2 MySql 体系结构

mysql 组成部分

  • 连接池组件

  • 管理服务和工具组件

  • SQL 接口组件

  • 查询分析器组件

  • 优化器组件

  • 缓存组件

  • 插件式存储引擎

  • 物理文件

    重点:存储引擎是基于表,不是基于数据库

    1.3 MySQL 存储引擎

    1.3.1 InnoDB存储引擎

    特点: 行锁设计、支持外键 、支持事务

    通过使用多版本并发控制(MVCC)来获得高并发性

    特性: 插入缓存(insert buffer) 、二次写(double write)、自适应哈希索引(adaptive hash index)、预读(read aheda)

    1.3.2 MyISAM存储引擎

    MyISAM存储引擎不支持事务、表锁设计、支持全文索引

    特点:1.缓存池只缓存索引文件,而不缓存数据文件

    文件:MYD和MYI组成,MYD用来存储数据文件,MYI用来存储索引文件

    1.3.3 NDB存储引擎

    NDB存储引擎是一个集群存储引擎

    特点:数据全部放在内存中

    1.3.4 Memory (HEAP)存储引擎

    将表中的数据存放在内存中

    场景:适合使用存储临时数据的临时表

    默认使用hash索引

    支持表锁,并发性能较差,并且不支持TEXT和BLOB列类型

    1.3.5 Archive 存储引擎

    Archive存储引擎之支持INSERT和SELECT操作

    使用zlib算法将数据行进行压缩存储

    场景:适合存储归档数据(如日志信息)

    1.3.6 Federted存储引擎
    1.3.7 Maria存储引擎

    Maria存储引擎是新开发引擎,设计目标主来取代MYISAM存储引擎

    特点: 支持缓存数据和索引文件,应用行锁设计,提供mvcc功能,支付事务和非事务安全的选项

    1.3.8 其他存储引擎

    InnoDB存储引擎

    文件

    索引与算法

    事务

    备份与恢复

    性能调优

    InnoDB存储引擎元代码的编译和调试


全部评论: 0

    我有话说: