MySQL学习笔记2
操作数据库
数据库是指长期存储在计算机内,有组织、可共享的数据集合。数据库的操作包括创建数据库和删除数据库。
1:创建数据库
2:删除数据库
3:数据库的存储引擎
4:如何选择存储引擎
创建数据库
创建数据库是指在数据库系统中划分一块空间,用来存储相应的数据。MySQL中,创建数据库是通过SQL语句CREATE DATABASE实现的。
其语法形式如下:
CREATE DATABASE 数据库名;
删除数据库
删除数据库是指在数据库系统中删除已经存在的数据库。删除数据库后,原来分配的空间被收回。删除数据库会删除给数据库中所有的表和所有数据。
MySQL中,删除数据库是通过SQL语句DROP DATABASE实现的。其语法形式如下:
DROP DATABASE 数据库名;
数据库存储引擎
MySQL中提到了存储引擎的概念。简而言之,存储引擎就是指表的类型。数据库的存储引擎决定了表在计算机中的存储方式。
存储引擎的概念是MySQL的特点,而且是一种插入式的存储引擎概念。这决定了MySQL数据库中的表可以用不同的方式存储。用户可以根据自己的不同要求,选择不同的存储方式、是否进行事务处理等。
使用SHOW ENGINES可以查看MySQL数据库支持的存储引擎类型。
(用\G或者\g结束语句可以让结果有序的显示)
1:InnoDB存储引擎
InnoDB是MySQL数据库的一种存储引擎。InnoDB给MySQL的表提供了事务、回滚、崩溃修复能力、多版本并发控制的事务安全。
InnoDB存储引擎中支持自动增长列AUTO_INCREMENT。自动增长列的值不能为空,且值必须唯一。MySQL中规定自增列必须为主键。
InnoDB存储引擎中,创建的表的表结构存储在.frm文件中。数据和索引存储在innodb_data_home_dir和innodb_data_file_path定义的表空间中。
缺点是读写效率稍差,占用的数据空间相对比较大。
2:MyISAM存储引擎
MyISAM存储引擎是MySQL中常见的存储引擎,曾今是MySQL的默认存储引擎。MyISAM存储引擎的表存储成三个文件。文件的名字与表名相同。扩展名包括frm、MYD和MYI。其中,frm为扩展的文件存储表的结构;MYD为扩展名的文件存储数据,其是MYData的缩写;MYI为扩展名的文件存储索引,其是MYIndex的缩写。
MyISAM存储引擎的优势在于占用空间小,处理速度快。缺点是不支持事务的完整性和并发性。
3:MEMORY存储引擎
MEMORY存储引擎是MySQL中的一类特殊的存储引擎。其使用存储在内存中的内容来创建表,而且所有数据也放在内存中。这样有利于对数据的快速的处理,提高整个表的处理效率。
MEMORY表的大小是受到限制的。表的大小主要取决于两个参数,分别是max_rows和max_heap_table_size。
因为存储在内存中所以数据容易丢失,一旦关机数据将不存在了。
存储引擎的选择
存储引擎对比
特性 | InnoDB | MyISAM | MEMORY |
---|---|---|---|
事务安全 | 支持 | 无 | 无 |
存储限制 | 64TB | 有 | 有 |
空间使用 | 高 | 低 | 低 |
内存使用 | 高 | 低 | 高 |
插入数据的速度 | 低 | 高 | 高 |
对外键的支持 | 支持 | 无 | 无 |