我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MySql中的存储引擎和索引

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

MySql中的存储引擎和索引

一、MySql的逻辑结构

MySQL体系结构分为四层:分别是连接层、服务层、存储引擎层、系统文件层。

  • 连接层又称为客户端连接器(Client Connectors):提供与MySQL服务器建立的支持。连接池:管理、缓冲用户的连接,线程处理等需要缓存的需求。
  • 服务层是MySQL Server的核心:主要包含系统管理和控制工具、SQL接口、解析器、查询优化器、缓存。
  • 存储引擎层:负责MySQL中数据的存储与提取,与底层系统文件进行交互。MySQL存储引擎是插件式的,不同的存储引擎具备不同的功能,可以根据自己的需要进行选择,最常见的是MyISAM和InnoDB。插件式存储引擎:管理和操作数据的一种机制,包括(存储数据、如何更新、查询数据等)
  • 系统文件层:将数据库的数据和日志存储在文件系统之上,并完成与存储引擎的交互,是文件的物理存储层。主要包含日志文件(redolog,undo.log),数据文件,索引文件,二进制日志,错误日志,配置文件,pid 文件,socket 文件等。

二、什么是存储引擎

MySql数据库使用不同的机制存取表文件,有不同的存储方式,索引技巧,锁定水平且广泛的功能和能力。将这些不同的技术及配套的功能称为存储引擎

MySQL支持的存储引擎

MySQL5.7支持的引擎包括:InnoDB、MyISAM、MEMORY、Archive、Federate、CSV、BLACKHOLE等,其中较为常用的有三种:InnoDB、MyISAM、MEMORY。

三、操作

查询数据库支持的存储引擎:

SHOW ENGINES;

查询某个数据库中所有数据表的存储引擎:

// 标准语法: SHOW TABLE STATUS FROM 数据库名称;

// 查询db4数据库所有表的存储引擎
SHOW TABLE STATUS FROM db4;

查询某个数据库中某个表的存储引擎:

//标准语法: SHOW TABLE STATUS FROM 数据库名称 WHERE NAME = '数据表名称';

// 查看db4数据库中user表的存储引擎
SHOW TABLE STATUS FROM db2 WHERE NAME='user';

创建数据表指定存储引擎:

// 标准语法:CREATE TABLE 表名( 列名,数据类型, ... )ENGINE = 引擎名称;

CREATE TABLE engine_test(
	id INT PRIMARY KEY AUTO_INCREMENT,
	NAME VARCHAR(10)
)ENGINE=MYISAM;

修改数据表的存储引擎:

// 标准语法: ALTER TABLE 表名 ENGINE = 引擎名称;

// 修改engine_test表的存储引擎为InnoDB
ALTER TABLE engine_test ENGINE=INNODB;

四、数据库的索引

MySQL数据库中的索引:是帮助MySQL高效获取数据的一种数据结构!所以,索引的本质就是数据结构。

在表数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式指向数据, 这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。

索引的分类

  • 普通索引: 最基本的索引,它没有任何限制。
  • 唯一索引:索引列的值必须是唯一,允许有控制,如果是组合索引,则列值组合必须唯一。
  • 主键索引:一种特殊的唯一索引,不允许有空值。一般在建表是同时创建主键索引。
  • 组合索引:将单列索引进行组合
  • 外键索引: 只有InnoDB引擎支持外键索引,用来保证数据的一致性、完整性和实现联级操作。
  • 全文索引:快速匹配全部文档的方式。InnoDB引擎5.6版本后才支持全文索引。MEMORY引擎不支持。

五、索引操作

创建索引:

CREATE [UNIQUE|FULLTEXT] INDEX 索引名称
	[USING 索引类型]  -- 默认是BTREE
	ON 表名(列名...);
       
// 为student表中的name列创建一个普通索引
CREATE INDEX idx_name ON student(NAME);

//为student表中的age列创建一个唯一索引
CREATE UNIQUE INDEX idx_age ON student(age);

查询索引:

// 标准语法: SHOW INDEX FROM 表名;

// 查询student表中的索引  (主键列自带主键索引)
SHOW INDEX FROM student;

添加索引:

ALTER添加索引
-- 普通索引
ALTER TABLE 表名 ADD INDEX 索引名称(列名);

-- 组合索引
ALTER TABLE 表名 ADD INDEX 索引名称(列名1,列名2,...);

-- 主键索引
ALTER TABLE 表名 ADD PRIMARY KEY(主键列名); 

-- 外键索引(添加外键约束,就是外键索引)
ALTER TABLE 表名 ADD CONSTRAINT 外键名 FOREIGN KEY (本表外键列名) REFERENCES 主表名(主键列名);

-- 唯一索引
ALTER TABLE 表名 ADD UNIQUE 索引名称(列名);

-- 全文索引
ALTER TABLE 表名 ADD FULLTEXT 索引名称(列名);

删除索引:

// 标准语法:DROP INDEX 索引名称 ON 表名;

// 删除idx_score索引
DROP INDEX idx_score ON student;

到此这篇关于MySql中的存储引擎和索引的文章就介绍到这了,更多相关MySql存储引擎内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

MySql中的存储引擎和索引

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

MySql中的存储引擎和索引

这篇文章主要介绍了MySql中的存储引擎和索引,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
2022-11-13

MySql 存储引擎和索引相关知识总结

存储引擎什么是数据库存储引擎? 数据库引擎是数据库底层软件组件,不同的存储引擎提供不同的存储机制,索引技巧,锁定水平等功能,使用不同的数据库引擎,可以获得特定的功能 如何查看引擎?--如何查看数据库支持的引擎 show engines;
2022-05-11

MySQL中MyISAM存储引擎的非聚簇索引分析

本文小编为大家详细介绍“MySQL中MyISAM存储引擎的非聚簇索引分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“MySQL中MyISAM存储引擎的非聚簇索引分析”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧
2023-06-29

mysql-存储引擎

1.存储引擎完整的建表语句:CREATE TABLE dept (DEPTNO int(2) NOT NULL,DNAME varchar(14) DEFAULT NULL,LOC varchar(13) DEFAULT NULL,PRIMARY KEY (D
mysql-存储引擎
2020-03-17

MySQL 存储引擎

简介:存储引擎是数据库底层软件组件,数据库管理系统使用数据引擎进行创建、查询、更新和删除操作。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能。   常见分类有:InnoDB、MyISAM、Memory等;一、InnoDB  1. 是事务型存储引擎,
MySQL 存储引擎
2017-04-10

MYSQL存储引擎

存储引擎InnoDB     (1) InnoDB给MySQL提供了具有提交、回滚和崩溃恢复能力的事务安全(ACID兼容)存储引擎。InnoDB锁定在行级并且也在SELECT语句中提供一个类似Oracle的非锁定读。这些功能增加了多用户部署和性能。在SQL查询
2021-04-17

Mysql--存储引擎

1.文件系统: 1.1 操作系统组织和存取数据的一种机制。 1.2 文件系统是一种软件。 2.文件系统类型:ext2 3 4 ,xfs 数据 2.1 不管使用什么文件系统,数据内容不会变化 2.2 不同的是,存储空间、大小、速度。 3.MySQ
Mysql--存储引擎
2021-09-03

MySQL 存储引擎

存储引擎DBMS使用存储引擎进行数据的创建、查询、更新、删除操作。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎还可以获得特定的功能。MySQL提供了多种存储引擎,最常见的有3种。     1、MyISAM MySQL5.5之前
MySQL  存储引擎
2015-11-16

【MySQL】存储引擎

文章目录 1. 前言2. MySQL的体系结构3. 存储引擎简介4. InnoDB介绍5. MyISAM介绍6. Memory7. 存储引擎的选择8. 总结 1. 前言 存储引擎是 MySQL 的核心组件之一,负责数据的存储和管
2023-08-16

编程热搜

目录