MySQL数据库存储引擎介绍及数据库的操作详解
作者:1 + 1=王
mysql面试中最常问的问题之一:小伙子,你说一下你们公司用的存储引擎,以及你知道有哪些存储引擎和他们之间的区别? 所以下面这篇文章主要给大家介绍了关于Mysql存储引擎的相关资料,需要的朋友可以参考下
MySQL存储引擎
InnoDB存储引擎
InnoDB存储引擎是MySQL常见的的存储引擎,
- 它给MySQL的表提供了事务处理、回滚、崩溃修复和多版本并发控制等功能;
- 支持列值自动增长(列值不能为空且必须唯一);
- 支持外键。
- 缺点: 占用的空间相对较大
MyISAM储存引擎
MyISAM储存引擎支持3种不同的存储格式:静态型、动态型和压缩型。
- 静态型:静态型是MyISAM的默认存储格式,它的字段是固定长度;
- 动态型:包含变长字段,记录的长度不是固定的。
MyISAM储存引擎占用空间小,处理速度快;但不支持事务的完整性和并发性。
Memory存储引擎
Memory存储引擎使用存储在内存中的内容来创建表,而且数据全部存放在内存中。
每个基于Memory存储引擎的表实际对应一个磁盘文件,该文件名与表名一致,且只存放表的结构。如果重启或关机,所有数据都会消失。
Memory存储引擎默认使用哈希索引,也可在创建索引时指定为B型树索引,使用哈希索引的速度比使用B型树索引的速度快。
Archive存储引擎
Archive存储引擎只支持INSERT和SELECT操作,非常适合存储归档数据,如日志信息等。
Archive存储引擎通过使用zlib算法将数据行压缩后存储,但是它并不知道事务安全的存储引擎,它的设计目标是提供高速的插入和压缩功能。
功能 | InnoDB | MyISAM | Memory | Archive |
---|---|---|---|---|
存储限制 | <= 64TB | <=256TB | RAM | None |
支持事务 | 是 | 否 | 否 | 否 |
全文索引 | 否 | 是 | 否 | 否 |
树索引 | 是 | 是 | 是 | 否 |
哈希索引 | 否 | 否 | 是 | 否 |
数据缓存 | 是 | 否 | N/A | 否 |
外键 | 是 | 否 | 否 | 否 |
数据库的相关操作
创建数据库
create database [if not exists] <数据库名> [[default] charset set <字符集名>] [[default] collate <校对规则名>]
- [if not exists]:表示在创建数据库之前判断该数据库是否存在,只有在不存在的数据才执行创建操作
- [[default] charset set <字符集名>]:表示指定数据库的字符集。
- [[default] collate <校对规则名>]:表示指定字符集的默认校对规则。
修改数据库
alter database <数据库名> { [default] charset set <字符集名> | [default] collate <校对规则名> }
使用alter database更改数据库的全局特性,需提前获得数据库的修改权限。
删除数据库
drop database [if exists] <数据库名>
查看数据库列表
show databases [like '数据库名'];
用户查看MySQL中当前存在的数据库列表。
[like ‘数据库名’]:用户匹配指定的数据库名称,可以部分匹配也可以完全匹配。
打开数据库
use <数据库名>
到此这篇关于MySQL数据库存储引擎介绍及数据库的操作详解的文章就介绍到这了,更多相关MySQL数据库存储引擎内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!