MySQL进阶篇

一、存储引擎

(一)、MySQL体系结构

连接层:‌主要负责客户端和服务器之间的连接处理、‌授权认证以及相关的安全方案。‌服务器会为每个安全接入的客户端验证其所具有的操作权限。‌ 

服务层:‌实现大多数的核心服务功能,‌如SQL接口,‌完成缓存的查询、‌SQL的分析和优化,‌以及部分内置函数的执行。‌所有跨存储引擎的功能也在这一层实现,‌如过程、‌函数等

存储引擎层:‌真正负责MySQL中数据的存储和提取。‌服务器通过API和存储引擎进行通信。‌不同的存储引擎具有不同的功能,‌用户可以根据自己的需要选择合适的存储引擎。‌MySQL支持多种存储引擎,‌如MyISAM和InnoDB,‌它们各有特点,‌满足不同的应用需求。‌

系统文件层:‌负责将数据库的数据和日志存储在文件系统之上,‌完成与存储引擎的交互。‌这一层包括日志文件、‌数据文件、‌配置文件等,‌其中日志文件记录了数据库的更改操作和其他重要信息,‌对于数据库的恢复和复制非常重要。‌

查询缓存层(‌如果启用)‌:‌如果查询缓存有命中的查询结果,‌查询语句可以直接从查询缓存中获取数据,‌提高查询效率。‌

(二)、什么是存储引擎

数据库中的存储引擎是数据库管理系统(DBMS)中负责执行数据存储、‌检索和管理操作的软件组件。‌它们各自有不同的特点和适用场景。‌常见的存储引擎包括MyISAM、‌InnoDB、‌Memory、‌Archive等。‌不同的存储引擎提供不同的存储机制、‌索引技巧、‌锁定水平等功能。‌

存储引擎是基于,而不是基于库的,所以存储引擎也可以称为表类型。

常见存储引擎对比分析:

特点 InnoDB MyISAM Memory
存储限制 64TB
事务安全 支持 - -
锁机制 行锁 表锁 表锁
B+Tree索引 支持 支持 支持
hash索引 -- -- 支持
全文索引

5.6版本

之后支持

支持 --
空间使用 N/A/
内存使用 中等
批量插入速度
支持外键 支持 -- --

(三)、存储引擎的选择

选择数据库存储引擎时,‌应根据具体的应用场景和需求来决定。‌如果应用需要高并发、‌事务支持和数据一致性,‌InnoDB是一个很好的选择。‌如果应用主要是读密集型且对事务完整性要求不高,‌MyISAM可能更适合。‌对于需要高速处理但数据安全性要求不高的场景,‌可以考虑使用MEMORY存储引擎。‌而对于特定的非结构化数据存储或高速缓存需求,‌MongoDB和Redis可能是更好的选择。

(四)、查看当前数据库支持的存储引擎情况

我当前为MySQL:

show engines;

创建表的时候指定存储引擎,首先创建两张表并且指定存储引擎

create table test(id int ,name varchar(10))engine=innodb;

create table test1(id int,name varchar(10))engine=memory;

然后查看表状态,发现存储引擎已经被指定了:

二、索引

(一)索引的概述

索引是数据库中一种重要的数据结构,‌用于加快数据的检索速度。‌它相当于图书的目录,‌允许数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值