【MySQL】存储引擎

第1章 MySQL的体系结构

  • 连接层

        最上层是一些客户端和连接服务,主要完成一些类似连接处理,认证授权和一些相关的

安全方案。服务器也会安全的接入每个客户端,并验证他们的身份权限。

  • 服务层

        第二层架构主要完成大多数的核心服务功能,如SQL接口,并完成缓存的查询,SQL的分

析和优化,部分内置函数的执行,所有垮存储引擎的操作也在这一层执行,如过程、函数等。

  • 引擎层

        存储引擎真正负责了MySQL中数据的存储和提取,服务器通过API和存储引擎进行通信。不同的存储引擎有不同的功能,可以根据需要选择合适的存储引擎。

  • 存储层

主要是将数据存储在磁盘之上,完成与存储引擎的交互。

第2章 存储引擎简介

        存储引擎就是存储数据、建立索引以及修改/查询等技术的实现方式。存储引擎是基于表的而不是基于库的,所以存储引擎也可被称为表类型。

        MySQL5.5之后的默认使用的存储引擎是InnoDB,之前采用的是MyISAM。

        创建表示指定存储引擎为MyISAM

create table user(
    id int,
    name varchar(10)
) engine = MyISAM

第3章 InnoDB介绍

        介绍:        

        InnoDB是一种高可靠性,高性能的数据存储引擎,在MySQL5.5之后,成为默认引擎。

        特点:

  1.         DML操作遵循ACID模型,支持事务
  2.        行级锁,提高并发访问性能
  3.        支持外键约束,保证数据的完整性和正确性

        文件:

                xxx.idb:xxx代表表名,InnoDB每一张表都会对应这样这张表空间文件,用于存储该表的表结构(.frm .sdi)、数据和索引。

                参数:innodb_file_per_table,默认为no表示所有表都有自己的表空间文件。

第4章 存储引擎的选择

  • InnoDB:支持事务,行级锁,外键。如果应用对事务的完整性要求比较高,在并发条件下要求数据的一致性,数据除了插入和查询之外,对数据还包含很多的修改/删除操作,那么InnoDB是比较合适的选择
  • MyISAM:如果应用是以插入和查询为主,并且对数据的完整性和一致性要求不高,可以选择MyISAM。
  • Memory:将所有的数据保存在内存中,访问速度快,通常用于临时表及缓存。因为保存在内存中,Memory无法缓存较大的表,无法保障数据的安全性。

你可能感兴趣的:(sql,数据库)