目录
一、存储引擎
1、什么是存储引擎?
2、存储引擎的分类
关系型数据库存储引擎:
非关系型数据库存储引擎:
分布式数据库存储引擎:
3、常用的存储引擎及优缺点
1、InnoDb存储引擎
2、MyISAM存储引擎
3、MEMORY存储引擎
4、MySQL支持的存储引擎
5、存储引擎的选择
1、InnoDb存储引擎
2、MyISAM存储引擎
3、MEMORY存储引擎
二、数据库的基本操作
1、查看数据库
2、选择数据库
3、创建数据库
4、删除数据库
一、存储引擎
1、什么是存储引擎?
存储引擎是数据库管理系统(DBMS)中的一个关键组件,在MySQL当中可以使用不同的技术将数据存储在文件当中,每一种技术都使用不同的存储机制、索引技巧、锁定水平并最终提供不同的功能和能力,这些不同的技术以及配套的功能在MySQL中称为存储引擎。简而言之,存储引擎就是表的类型。在开发时为了提高MySQL数据库管理系统的使用效率和灵活性,可以按照具体业务的实际需求来进行存储引擎的选择。
2、存储引擎的分类
关系型数据库存储引擎:
- InnoDB:支持事务处理、行级锁定、外键约束,使用聚簇索引,适合需要高并发读写和事务处理的场景。
- MyISAM:以高效率的插入和查询速度著称,但不支持事务处理和行级锁定,适合读操作比写操作更频繁的场景。
- Memory:所有数据存储在内存中,适合于快速读写操作,数据在服务器重启后可能会丢失,适用于缓存和临时数据存储。
- Archive:主要用于归档数据,支持高效的数据插入和压缩,但不支持索引,适用于需要大量存储空间的归档场景。
非关系型数据库存储引擎:
- Apache Cassandra:一个分布式非关系型数据库,提供高可用性和可扩展性,适合处理大量数据。
- MongoDB:一个基于文档的非关系型数据库,数据结构灵活,适合需要灵活存储数据的场景。
- Redis:一个开源的内存中数据结构存储系统,用作数据库、缓存或消息传递系统。
分布式数据库存储引擎:
- Google Spanner:一个分布式关系型数据库,提供了跨多个物理位置的强一致性读写操作。
- Apache HBase:基于Hadoop的分布式列式存储系统,适合于大数据应用场景。
3、常用的存储引擎及优缺点
1、InnoDb存储引擎
InnoDB是MySQL数据库管理系统中的一种存储引擎,它给MySQL的表提供了事务、回滚、崩溃修复能力和多版本并发控制的事务安全,InnoDB是MySQL第一个提供外键约束的表引擎。InnoDB存储引擎是由Innobase Oy公司开发的,后来被甲骨文公司并购。从MySQL 5.5版本开始,InnoDB成为了MySQL的默认存储引擎。
InnoDB存储引擎的优势在于提供了良好的事务管理、崩溃修复能力和并发控制。缺点是其读写效率稍差,占用的数据空间相对比较大。
2、MyISAM存储引擎
MyISAM存储引擎是MySQL中常见的存储引擎,曾是MySQL的默认存储引擎, MyISAM存储引擎是基于ISAM存储引擎发展起来的,并因此增加了很多应用,它由MySQL的创始人Michael Widenius和David Axmark创建。
MyISAM存储引擎的表支持三种形式,包括静态型、动态型和压缩型。其中,静态型为MyISAM存储引擎的默认存储格式,其字段是固定长度的;动态型包含变长字段,记录的长度不是固定的;压缩型需要使用myisampack工具创建,占用的磁盘空间小。
MyISAM存储引擎适用于读操作频繁、写操作相对较少的情况,它以高性能和低内存占用为特点,缺点是不支持事务的完整性和并发性。
3、MEMORY存储引擎
MEMORY存储引擎(也称为HEAP引擎)是MySQL数据库管理系统中的一个轻量级存储引擎,它是MySQL中一种特殊的存储引擎,使用存储在内存中的内容来创建表,它将数据存储在内存中,因此提供了非常高的读写速度。MEMORY存储引擎是InnoDB的另一种选择,特别是在需要快速访问和处理数据时。
4、MySQL支持的存储引擎
在选择存储引擎之前先要了解当前数据库管理系统支持哪些存储引擎,在MySQL数据库管理系统中,可以使用SHOW ENGINES 来查看支持的存储引擎。以下图片为MySQL8.0版本的支持引擎。
SHOW ENGINES
Engine:存储引擎名称
Support:表示MySQL数据库是否支持该存储引擎
Comment:相关介绍
Transactions:存储引擎是否支持事务
XA:存储引擎所支持的分布式是否符合XA规范
Savepoints:表示是否支持业务事务处理的储存点
当在创建表时若没有指定使用的存储引擎则会使用默认的存储引擎,我们需要提前查看并确认默认的存储引擎,使用以下SQL语句来查询
SHOW variables like '%storage_engine%';
如果想修改默认引擎,可以通过修改MySQL数据库管理系统的my.cnf配置文件来实现。(切记修改前需要先关闭MySQL服务)
5、存储引擎的选择
在使用MySQL数据库管理系统的开发初期需要根据实际的业务需求来选择存储引擎,因为每个存储引擎都有自己的特性和优势及使用场合,因此只有掌握各种存储引擎的特性,才能正确的选择存储引擎。以下简单的列出常用存储类型的对比表格作为参考。
特性 | InooDB | MyISAM | MEMORY |
事务安全 | 支持 | 无 | 无 |
存储显示 | 64TB | 有 | 有 |
空间使用 | 高 | 底 | 底 |
内存使用 | 高 | 底 | 高 |
插入数据的速度 | 底 | 高 | 高 |
锁机制 | 行锁 | 表锁 | 表锁 |
对外键的支持 | 支持 | 无 | 无 |
数据可压缩 | 无 | 支持 | 无 |
批量插入的速度 | 底 | 高 | 高 |
1、InnoDb存储引擎
- 适用于需要事务处理、外键约束和数据持久性的应用。
- 适合复杂的查询和频繁的数据修改操作。
- 提供了行级锁和崩溃恢复能力,保证了数据的完整性和一致性。
- 适合于在线事务处理(OLTP)系统,如电子商务、金融系统和任何需要高数据完整性的应用。
2、MyISAM存储引擎
- 适用于读操作远多于写操作的场景。
- 提供了高效的插入性能和全文索引支持。
- 不支持事务处理和外键约束,但不适用于需要这些特性的应用。
- 适合于内容管理系统(CMS)、日志处理和数据仓库等场景,尤其是当性能和存储空间是首要考虑因素时。
3、MEMORY存储引擎
- 适用于需要高速读写和缓存数据的场景。
- 所有数据都存储在内存中,因此提供了极高的访问速度。
- 不支持事务处理和外键约束,且数据在服务器关闭后会丢失,除非设置了持久化。
- 适合于数据缓存、高速缓存和临时存储需求,但不适合需要长期存储数据的应用。
二、数据库的基本操作
1、查看数据库
登录MySQL数据库后通过输入以下命令来查看数据库,当输入命令后会返回可用的数据库列表,其中包含MySQL内部使用的数据库。
SHOW DATABASES;
2、选择数据库
获取MySQL数据库列表后通过输入以下命令来选择数据库,当输入命令后会进行一个反馈数据库已变更如下图所示。
USE mysql;
3、创建数据库
在使用 create 命令创建数据库之前需要了解相关语法,语法如下所示:
CREATE DATABASE 数据库名;
创建一个名为teacher的数据库,具体操作如下所示:
CREATE DATABASE teacher;
4、删除数据库
删除刚刚创建名为teacher的数据库,具体操作如下所示:
DROP DATABASE teacher;