zoukankan      html  css  js  c++  java
  • 第一章 mysql体系结构和存储引擎

    1.1 数据库和实例

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

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

    启动服务:

    查看实例进程

    配置文件: mysql --help|grep my.cnf

    datadir  -- 可能只是一个软连接

    1.2 MySQL体系结构

    连接池

    管理服务和工具组件

    SQL接口组件

    查询分析组件

    优化器组件

    缓存组件

    插件式存储引擎

    物理文件

    存储引擎是基于表的,不是基于库的

    1.3 MySQL存储引擎

    官方文档:自定义存储引擎的过程

    innodb

    innodb存储引擎:支持事务、行锁设计、支持外键、非锁定读,

    innodb表空间由innodb存储引擎自身进行管理,支持raw disk上创建表空间

    使用mvcc提高并发性

    支持SQL标准的四种事务隔离级别,使用next-key lock避免幻读

    插入缓冲、double write、自适应哈希索引、预读

    采用聚簇索引的方式组织表数据(主键)

    MyISAM

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

    缓冲池只缓存(cache)索引文件,而不缓冲数据文件

    ndb存储引擎

    NDB的特点是数据全部放在内存中,主键查询快,并且通过添加NDB数据存储节点(Data Node)可以线性地提高数据库性能,是高可用、高性能的集群系统

    NDB存储引擎的连接操作(JOIN)是在MySQL数据库层完成的,而不是在存储引擎层完成的。这意味着,复杂的连接操作需要巨大的网络开销,因此查询速度很慢

    Memory存储引擎

    数据存放在内存中,如果数据库重启或发生崩溃,表中的数据都将消失。它非常适合用于存储临时数据的临时表,以及数据仓库中的纬度表。Memory存储引擎默认使用哈希索引,而不是我们熟悉的B+树索引。

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

    存储变长字段(varchar)时是按照定常字段(char)的方式进行的,因此会浪费内存

    file:///C:/Users/dell/Documents/WeChat%20Files/wxid_o1wazo63wge722/FileStorage/File/2021-05/37%E8%AE%B2%E4%BB%80%E4%B9%88%E6%97%B6%E5%80%99%E4%BC%9A%E4%BD%BF%E7%94%A8%E5%86%85%E9%83%A8%E4%B8%B4%E6%97%B6%E8%A1%A8.html

    file:///C:/Users/dell/Documents/WeChat%20Files/wxid_o1wazo63wge722/FileStorage/File/2021-05/36%E8%AE%B2%E4%B8%BA%E4%BB%80%E4%B9%88%E4%B8%B4%E6%97%B6%E8%A1%A8%E5%8F%AF%E4%BB%A5%E9%87%8D%E5%90%8D.html

    Archive存储引擎

    只支持INSERT和SELECT操作,Archive存储引擎使用zlib算法将数据行(row)进行压缩后存储,压缩比一般可达1∶10;

    Archive存储引擎非常适合存储归档数据,如日志信息。Archive存储引擎使用行锁来实现高并发的插入操作,但是其本身并不是事务安全的存储引擎,其设计目标主要是提供高速的插入和压缩功能。

    Federated存储引擎

    不存放数据,类似oracle的db link

    Maria存储引擎

    可以看做是MyISAM的后续版本,支持缓存数据和索引文件,应用了行锁设计,提供了MVCC功能,支持事务和非事务安全的选项,以及更好的BLOB字符类型的处理性能

    1.4 存储引擎之间的比较

    1.5 连接MySQL

    1.tcp/ip

    在通过TCP/IP连接到MySQL实例时,MySQL数据库会先检查一张权限视图,用来判断发起请求的客户端IP是否允许连接到MySQL实例。该视图在mysql架构下,表名为user

    2.socket连接

    只能本地连接

    资料来源于姜承尧老师的《MySQL技术内幕 InnoDB存储引擎》

  • 相关阅读:
    计算机网络知识 第一部分
    LAMP环境安装
    Axure RP 交互设计
    Axure RP 界面功能
    Axure RP 界面功能介绍
    Axure RP 第一部分
    Grub管理修改root口令
    MYSQL 部分练习题
    工作日志示例
    计算机网络的分类
  • 原文地址:https://www.cnblogs.com/geek-ace/p/14807493.html
Copyright © 2011-2022 走看看