Mysql

关注公众号 jb51net

关闭
首页 > 数据库 > Mysql > MySql存储引擎

MySql中的存储引擎和索引

作者:面屏思过​​​​​​​

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

一、MySql的逻辑结构

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

二、什么是存储引擎

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高效获取数据的一种数据结构!所以,索引的本质就是数据结构。

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

索引的分类

五、索引操作

创建索引:

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存储引擎内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文