文章目录
操作数据库
创建数据库
语法形式:CREAT DATABASE 数据库名;
在创建数据库之前,可以使用SHOW来显示已经存在的数据:SHOW DATABASE;
成功提示:Query OK,1 row affected(0.01sec) 含义为创建成功,1行受到影响,处理时间为0.01秒。4 rows in set表示集合中有四行信息。
删除数据库
语法形式:DROP DATABASE 数据库名;
在数据库删除成功后,之前分配给mybook数据库的空间将收回。
数据库存储引擎
0)、MySQL存储引擎简介
存储引擎的概念是MySQL的特点,而且是一种插入式的存储引擎概念。这决定了MySQL数据库中的表可以用不同的方式存储。用户可以根据自己的不同要求,选择不同的存储方式,是否进行事务处理等。
查看MySQL数据库支持的存储引擎类型,查询方法:SHOW ENGINES;
该语句可以用 ;、\G、\g、结尾。其中\G能让显示结果更加美观
查询结果演示:
Engine:InnoDB // 存储引擎名称
Support:DEFAULT // MySQL是否支持该引擎。YES表示支持,DEFAULT表示默认存储引擎。
Comment:Supports transactions,row-level locking,and foregin keys // 对该引擎的评论
Transactions:YES // 是否支持事务处理。YES表示支持
XA:YES // 是否是分布式交易处理的XA规范。YES表示支持
Savepoints:YES // 是否支持保存点,以便事务回滚到保存点。YES表示支持
InnoDB为MySQL默认的存储引擎
使用show语句查询MySQL支持的存储引擎的信息,语法SHOW VARIABLES LIKE 'have%'
+------------------------+----------+
| Variable_name | Value |
+------------------------+----------+
| have_compress | YES |
| have_dynamic_loading | YES |
| have_geometry | YES |
| have_openssl | YES |
| have_profiling | YES |
| have_query_cache | NO |
| have_rtree_keys | YES |
| have_ssl | YES |
| have_statement_timeout | YES |
| have_symlink | DISABLED |
+------------------------+----------+
Variable_name表示存储引擎的名称
Value表示MySQL的支持情况。其中DISABLED 表示支持但是未开启。
使用SHOW语句查看默认存储引擎:
SHOW VARIABLES LIKE 'storage_engine';
可以在my.ini文件中修改默认引擎:
default-storage-engine=INNOB
为default-storage-engine=MyISAM
,然后重启服务,修改生效。
1)、InnoDB存储引擎
优点:
- 为表提供了事务、回滚、崩溃修复能力和并发控制的事务安全。
- 提供外键约束,外键所在的表为子表,外键所依赖的表叫父表。父表中被子表关联的字段必须为主键。当删除、更新父表的某条信息时,字表也必须有相应的改变。
- 对事物的处理能力强
- 支持自动增长列AUTO_INCREMENT。自动增长列值不能为空,且必须唯一。MySQL中规定自增列必须为主键。如果不输入自动增长列的值(或输入null或0),则插入的值为自动增长列增长后的值。
缺点:
- InnoDB存储引擎的读写效率差,占用的数据空间相对比较大。
存储结构
创建的表结构存储在 .frm 文件中。数据和索引存储在innodb_data_home_dir和innodb_data_file_path定义的表空间中。
2)、MyISAM存储引擎
MyISAM存储引擎是MySQL中常见的存储引擎,曾是MySQL默认的存储引擎。是基于ISAM存储引擎发展起来的。
优点:
- 支持三种不同的存储格式:静态、动态、和压缩。其中静态为MySIAM存储引擎的默认存储格式,其字段是固定长度的。动态型包含变长字段,记录的长度不是固定的;压缩型需要使用myisampack工具创建,占用的磁盘空间较小。
- 处理速度快。
缺点:
- 不支持事务的完整性和并发性。
存储结构:
MyISAM的表存储成3个文件。文件的名字与表名相同。扩展名包括frm、MYD、MYI。
- frm:存储表的结构。
- MYD:存储数据
- MYI:文件存储索引
3)、MEMORY存储引擎
是MySQL中的一类特殊的存储引擎。其使用存储在内存中的内容来创建表,而且所有数据也放在内存中。
优点:
- 因为其存储在内存中,所以处理速的非常快。
缺点:
- 因为其存储在内存中,数据易丢失,生命周期短。要求服务器有足够的内存来维持MEMORY存储引擎的表的使用。如果机器开机或关机,表中的所有数据将消失。
- 如果不需要使用的数据可以释放或删除来维持内存空间
存储结构:
MEMORY表的所有数据是纯处在内存上的,如果内存出现异常就会影响到数据的完整性。
MEMORY存储引擎默认使用(HASH)索引。其速度要比使用B型树索引快。如果读者希望使用B型树索引,可以在创建的时候选择使用。
MEMORY标的大小是受到限制的。表的大小主要取决于两个参数,分别是max_rows
(创建表时指定)和max_heap_table_size
(默认16MB,可以按需扩大)。
存储引擎的选择
根据事务安全、存储限制、空间使用、内存使用、插入数据的速度和对外键的支持这几个角度比较。
特性 | InnoDB | MyISAM | MEMORY |
---|---|---|---|
事务安全 | 支持 | 无 | 无 |
存储限制 | 64TB | 有 | 有 |
空间使用 | 高 | 低 | 低 |
内存使用 | 高 | 低 | 高 |
插入数据的速度 | 低 | 高 | 高 |
对外键的支持 | 支持 | 无 | 无 |
- InnoDB
如果对事物的完整性要求比较高,要求实现并发控制,那选择InnoDB存储引擎,因为该类存储引擎可以实现事务的提交和回滚。 - MyISAM
插入数据快,空间和内存使用比较低,如果表主要适用于插入新记录和读出记录,那么选择MyISAM存储引擎能事先处理的高效率。如果应用的完整性、并发性要求很低,也可以选择MyISAM。 - MEMORY
数据的存储在内存,处理速度快,但安全性不高。如果需要高读写速度,对于安全性要求不高可以使用MEMORY。MEMORY存储引擎对表的大小有要求,不能建立太大的表。
同一个数据库中可以使用多种存储引擎的表。如果一个表要求较高的事务处理,可以选择InnoDB。这个数据库中可以将查询要求比较高的表选择MyISAM存储引擎。如果需要该数据库中需要一个用于查询的临时表,可以选择MEMORY存储引擎。
登录数据库命令:
mysql -h localhost -u root -p
- -h:指链接的主机名,localhost为本地主机名称。
- -u:用户名
- -p:用户密码,按下Enter键后输入密码