MySQL相关书籍的读书笔记(一)

  1. 体系结构
    server层:该层又可以分为连接层和sql层;连接层:应用程序通过接口连接Mysql,最先连接处理的时连接层,连接层包括通信协议、线程处理、用户名密码认证三部分。sql层包括权限判断、查询缓存、解析器、预处理、查询优化器、缓存和执行计划。
    存储引擎层:Mysql数据库区别于其他数据库的核心部件。

  2. query Cache:生产中建议关闭;5.6版本后,默认关闭;

  3. 存储引擎
    InnoDB和MyISAM存储引擎是两个主流存储引擎,默认是InnoDB,并且8.0版本中使用了InnoDB数据字典,MyISAM被彻底删除。

    区别InnoDBMyISAM
    事务支持支持事务不支持
    锁粒度行锁表锁
    并发性高并发低并发
    构成结构和缓存机制数据和索引文件都存储在.Id文件里,并且都缓存内存数据文件的扩展名为.MYD
    索引文件的扩展名为.MYI
    只缓存索引文件,不缓存数据文件。
    select count(*)需要扫描全表,统计所有行数具有计数器,所以直接取得。
  4. InnoDB体系结构

    1. 数据库和数据库实例
      Mysql是一个单进程多线程模型的数据库。数据库实例就是进程加内存的组合。在操作数据时,是在数据库实例中进行的,也就是内存。内存的数据可以通过线程写入到磁盘。
    2. InnoDB存储结构:tablesoace—segment----extent-----page
      1. 表空间:InnoDB存储引擎表中的所有数据都存储在表空间中;表空间又可以分为系统表空间,使用ibdata1来命名;以及独立表空间,目前MySQL版本中,默认使用的都是独立表空间,就是每个表都有自己的表空间文件。独立表空间文件存储对应表的B+树数据、索引和插入缓冲等信息。5.7版本之后,又增加了临时表空间和通用表空间。
        临时表空间:把临时表的数据从系统表空间中抽离出来,形成自己独立的表空间。默认12M;
        通用表空间:多个表放在用一个表空间,
      2. 段:表空间是由段组成的。也可以把一个表理解为一个段,每个段由N个区和32个零散的页组成。通常创建一个索引的同时,就会创建两个段,分为非叶子节点和叶子节点段;
      3. 区:是物理上连续分配的一段空间,由连续的页组成,每个区的大小固定1MB;
      4. 页:InnoDB的最小物理存储分配单位;有数据页回滚页。一般情况下,一个区由64个连续的页组成,默认16kb;
      5. 行:页里面又记录 着行记录的信息,InnoDB存储引擎是面向行的,也就是数据是按照行存储的。
    3. 内存结构
    4. Buffer状态及其链表结构
    5. 各大刷新线程及其作用
    6. 内存刷新机制:当一条DML语句进入到数据库之后,先写日志,再写数据文件。
      1. redo log重做日志文件,用于记录事务操作的变化,记录的是数据修改后的值。不管事务是否提交都会记录下来,在实例和介质失败时,起恢复数据的作用。
      2. binlogMySQL的二进制日志文件;dml语句既会写redo log文件,也会写binlog文件。这个二进制文件用于备份恢复和主从复制。
      3. 二者区别
        1. 记录内容不同:binlog记录的是逻辑日志,记录所有数据的改变信息。redo log记录的是物理日志,记录所有InnoDB表数据的变化;
        2. 记录内容的时间不同:binlog记录commit完毕后的DML和DDL SQL语句;redo log记录事务发起之后的DML\DDL SQL语句;
        3. 文件使用方式不同:binlog不是循环使用,在写满或者实例重启后,会生成新的binlog文件;redo log是循环使用,最后一个写满后,会重写第一个文件。
        4. 作用不同:binlog可以作为恢复数据使用,主从复制搭建。redo log作为异常宕机或者介质故障后的数据恢复。
    7. 三大特性
      1. 插入缓冲:把普通索引上的DML操作从随机I/O变成顺序I/O;提升普通索引插入的性能;
      2. 两次写:保证数据写入的正确性。
      3. 自适应哈希索引:InnoDB又一个机制,可以控制索引的搜索,如果InnoDB注意到查询可以通过建立哈希索引得到优化,那么就会自动完成这件事;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值