数据库是指长期存储在服务器中,有组织的和可共享的数据集合。
创建数据库
创建数据库是指在数据库系统中划分一块空间,用来存储相应的数据
--查看已存在的数据库
show databases;
--创建一个新的数据库
create database example;
删除数据库
删除数据库是指在数据库系统中删除已经存在的数据库。删除数据库后,原来分配的空间将被收回。删除数据库会删除数据库中的所有表和所有数据。
--删除数据库example
drop database example;
数据库存储引擎
数据库的存储引擎就是指表的类型。数据库的存储引擎决定了表在服务器中的存储方式。
存储引擎的概念是MariaDB的特点,而且是一种插入式的存储引擎概念,因此MariaDB数据库中的表可以用不同的方式存储。用户可以根据自己的要求不同,选择不同的存储方式,以及是否启用事务等。
查看MariaDB数据库支持的存储引擎类型:
MariaDB [(none)]> show engines\G;
*************************** 1. row ***************************
Engine: MRG_MyISAM
Support: YES
Comment: Collection of identical MyISAM tables
Transactions: NO
XA: NO
Savepoints: NO
*************************** 2. row ***************************
Engine: CSV
Support: YES
Comment: Stores tables as CSV files
Transactions: NO
XA: NO
Savepoints: NO
*************************** 3. row ***************************
Engine: SEQUENCE
Support: YES
Comment: Generated tables filled with sequential values
Transactions: YES
XA: NO
Savepoints: YES
*************************** 4. row ***************************
Engine: MyISAM
Support: YES
Comment: Non-transactional engine with good performance and small data footprint
Transactions: NO
XA: NO
Savepoints: NO
*************************** 5. row ***************************
Engine: MEMORY
Support: YES
Comment: Hash based, stored in memory, useful for temporary tables
Transactions: NO
XA: NO
Savepoints: NO
*************************** 6. row ***************************
Engine: InnoDB
Support: DEFAULT
Comment: Supports transactions, row-level locking, foreign keys and encryption for tables
Transactions: YES
XA: YES
Savepoints: YES
*************************** 7. row ***************************
Engine: Aria
Support: YES
Comment: Crash-safe tables with MyISAM heritage
Transactions: NO
XA: NO
Savepoints: NO
*************************** 8. row ***************************
Engine: PERFORMANCE_SCHEMA
Support: YES
Comment: Performance Schema
Transactions: NO
XA: NO
Savepoints: NO
参数 | 含义 |
---|---|
Engine | 存储引擎名称 |
Support | 说明MariaDB是否支持该类引擎 |
Comment | 对该引擎的评论 |
Transactions | 是否支持事务功能 |
XA | 是否支持分布式交易处理的XA规范 |
Savepoints | 是否支持保存点,以便事务回滚到保存点 |
MariaDB默认的存储引擎是InnoDB。
InnoDB存储引擎
InnoDB是MariaDB数据库的一种存储引擎,InnoDB给数据库的表提供了事务、回滚、崩溃修复能力和多版本并发控制的事务安全。
InnoDB支持自增auto_increment,自增的值不能为空且必须唯一。
InnoDB支持外键,外键所在的表为子表,外键所依赖的表为父表。父表中被子表关联的字段必须为主键。
当然InnoDB也有缺点,它的读写效率较差,占用的数据空间也相对较大。
MyISAM存储引擎
MyISAM存储引擎是基于ISAM存储引擎发展起来的,MyISAM增加了许多有用的扩展。
MyISAM的表存储成3个文件,文件的名字与表名相同,扩展名为frm、MYD和MYI,frm文件存储表的结构;MYD文件存储数据;MYI文件存储索引。
基于MyISAM存储引擎的表支持3种存储格式:
- 静态型:默认存储格式,其字段是固定长度的
- 动态型:包含变长字段,记录的长度不是固定的
- 压缩型:需要myisampack工具创建,需要的磁盘空间较小
MyISAM存储引擎的优势是占用空间小,处理速度快。缺点是不支持事务。
MEMORY存储引擎
MEMORY存储引擎是MariaDB中一种特殊的存储引擎,使用存储在内存中的内容来创建表,所有数据都放在内存中。
每个基于MEMORY存储引擎的表实际上都对应一个磁盘文件。该文件的文件名与表名相同,类型为frm类型,并且只存储表的结构,而它的数据都存储在内存中,这样提高了数据的快速处理性能。