MySql数据库操作:创建数据库、删除数据库和数据库存储引擎

声明:本文内容参考书籍《MySql入门很简单》

目录

1 创建数据库

2 删除数据库

3 数据库存储引擎

3.1 InnoDB

3.2 MyISAM

3.3 MEMORY

3.4 存储引擎的选择


首先数据库是指长期存储在计算机内、有组织的和可共享的数据集合。简而言之,数据库就是一个存储数据的地方。只是,其存储方式有特定的规律。这样就可以方便的处理数据。数据库的操作包括创建数据库和删除数据库。这些操作都是数据库管理的基础。

同时MySql中提到了存储引擎的概念。简而言之,存储引擎就是指表的类型。数据库的存储引擎决定了表在计算机中的存储方式。

1 创建数据库

创建数据库用到的SQL语句为 CREATE DATABSE,语法形式如下:

CREATE DATABASE 数据库名;

例如创建一个名为test的数据库

如上,创建数据库之后我们可以用SHOW DATABASES语句来查看当前有哪些数据库。

2 删除数据库

删除数据库通过语句DROP DATABASE实现,其语法形式如下:

DROP DATABSASE 数据库名;

3 数据库存储引擎

通过:

SHOW ENGINES \g;

可以查看MySql数据库支持的存储引擎。\g和;的含义一样,只不过会让显示更美观。显示如下:

其中,Engine是存储引擎名称,Support表示表明Mysql是否支持此数据存储引擎,Comment是对该引擎的评论,Transactions表示此存储引擎是否支持事务处理,XA表示是否满足分布式交易处理的XA规范,Savepoints表示是否支持保存点,以便回滚到保存点。

InnoDB是MySql默认的存储引擎。接下来将详细介绍InnoDB、MyISAM和MEMORY存储引擎。

3.1 InnoDB

InnoDB给MySql的表提供了事务、回滚、崩溃修复能力和多版本并发控制的事务安全。InnoDB是MySql中第一个提供外键约束的表引擎。而且InnoDB对事物处理的能立,也是其他存储引擎无法进行比拟的。

InnoDB支持自动增长列AUTO_INCREMENT。自动增长列的值不能为空,且值必须是唯一。MySql中规定,自增长的列必须为主键。在插入值时,如果自增长的列不输入值,则插入的值为自动增长后的值;如果输入的值为0或NULL,则插入的值也为自动增长后的值;如果插入的是某个确定的值,且这个值在前面没有出现过,则可以直接插入。

InnoDB支持外键。外键所在的表为子表,外键所依赖的表为父表。父表中子表外键关联的字段必须为主键。当删除、更新父表中的某条信息时,子表也必须有相应的改变。

InnoDB存储引擎中,创建的表的表结构存储在.frm文件当中。数据和索引存储在innodb_data_home和innodb_data_file_path定义的表空间中。

InnoDB存储引擎的优势在于提供了良好的事务管理、崩溃修复能立和并发控制。缺点是其读写效率较差,占用的数据空间相对较大。

3.2 MyISAM

MyISAM存储引擎说MySql中最常见的存储引擎,曾经室MySql的默认引擎。MyISAM是基于ISAM存储引擎发展起来的,并对其增加了很多有用的扩展。

MyISAM存储引擎的表存储成三个文件。文件的名字与表名相同。扩展名包括frm、MYD和MYI。其中frm为扩展名的文件存储表的结构;MYD为扩展名的文件存储数据,MYI为扩展名的文件存储索引。

基于MyISAM存储引擎支持三种不同的存储格式。包括静态型、动态型和压缩型。其中,静态型为MyISAM的默认存储格式,其字段是固定长度的;动态型包含变长字段,记录的长度不是固定的;压缩型需要使用myisampack工具进行创建,占用的磁盘空间较小。

MyISAM存储引擎的优势在于占用空间小、处理速度快。缺点是不支持事务的完整性和并发性。

3.3 MEMORY

这是一种特殊的存储引擎,其使用存储在内存中的内容来创建表,而且数据也存放在内存当中。这些特性都与前两个存储引擎不同。

每个基于MEMORY存储引擎的表事件对应一个磁盘文件。该文件的文件名与表明相同,类型为frm类型。该文件中只存储表的结构,而数据都是文件,都是存在内存当中。这样有利于数据的快速处理,提高整个表的处理效率。需要注意的是,服务器必须要有足够的内存来维持MEMORY存储引擎的表的使用。如果不需要使用了,可以释放这些内存,甚至可以删除不需要的表。

MEMEORY存储引擎默认使用的是hash索引。其速度要比B型树索引快。

MEMORY的表的大小是受限制的。表的大小主要取决于两个参数,分别是max_rows和max_help_table_size,max_rows可以在创建表时指定:max_help_table_size的大小默认为16MB,并且可以按需进行扩大。因此,其存于内存中的特性,这类表的处理速度非常快。但是数据极易丢失。生命周期短,因此选择这个引擎要特别小心。

3.4 存储引擎的选择

在实际工作中,选择一个合适的存储引擎是一个非常复杂的问题。每个引擎都有各自的优势。下面从几个方面将这三种引擎做了一个比较。

  • InnoDB存储引擎,支持事务处理,支持外键。同时支持崩溃修复能力和并发控制。如果需要对事务的完整性要求比较高,要求实现并发控制那么就选择此存储引擎。如果需要频繁的进行更新、删除操作的数据库,也可以选择此存储引擎,因为该类引擎可以实现事务的提交和回滚。
  • MyISAM存储引擎的插入数据快,空间和内存使用比较低。如果表主要是用于插入新记录和读出记录,那么可以选择MyISAM存储引擎。如果完整性、并发性要求很低,也可以选择此引擎。
  • MEMORY存储引擎的所有数据都存在于内存当中。数据的处理速度快,但是安全性不高。如果需要很快的读写速度,对数据的安全性要求低,可以选择此存储引擎。同时,因为此引擎对表的大小有要求,不能建立太大的表。所以这类数据库只适用于相对较小的数据库表。
原创文章 152 获赞 71 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_42214953/article/details/105903141