MySQL自学笔记
使用MySQL 5.5以及MySQL自带命令客户端
存储引擎
在数据库中,对相同的数据可以着不同的存储方式和管理方式。在MySQL中,称其为存储引擎。 看到一篇文章中关于MySQL存储引擎的描述http://www.jb51.net/article/55849.htm,感觉比较不错: > 关系数据库表是用于存储和组织信息的数据结构,可以将表理解为由行和列组成的表格,类似于Excel的电子表格的形式。 > 有的表简单,有的表复杂,有的表根本不用来存储任何长期的数据,有的表读取时非常快,但是插入数据时去很差; > 而我们在实际开发过程中,就可能需要各种各样的表,不同的表,就意味着存储不同类型的数据,数据的处理上也会存在着差异,那么。 > 对于MySQL来说,它提供了很多种类型的存储引擎,我们可以根据对数据处理的需求,选择不同的存储引擎,从而最大限度的利用MySQL强大的功能。
同一张表的数据无论采用何种引擎,对于用户而言看到的数据是一样的,但是对数据库而言,是不同的!
-
显示存储引擎:
show engines;
-
常用的两种表的引擎:
- myisam:批量插入速度快,但是不支持事务,表锁,支持全文索引
- innoDB:批量插入相对较慢,支持事务(MySQL5.5以后默认是采用innoDB存储引擎),行锁,支持全文索引
- 具体存储引擎及其特点如下图所示:
- 对与安全性要求不高的话选择myisam,对安全性要求高的话选择innoDB,对与临时中转表选择memory(速度最快)
-
举一个例子,将表的存储引擎设置为myisam:
create table table1(
id tinyint,
name varchar(10),
age tinyint unsigned
)engine = myisam;
事务:transaction
事务:并发控制的单元,是用户定义的一个操作序列,这些操作要么都做,要么都不做,是不可分割的工作单位!
-
事务的四个特性:ACID
- 原子性(A,Atomicity):一组操作要么全都执行,要么全都不执行
- 一致性(C,Consistency):事务的一个执行结果必须是数据库一个一致状态变到另外一个一致状态。一致性和原子性是密切相关的!
- 隔离线(I,Isolation):一个事务的执行不能被其他事务干扰
- 持久性(D,Durability):一个事务一旦提交,它对数据库的改变是永久性的。这里如果出现错误的话,事务也是不允许撤销的,只能通过‘补偿事务’来进行处理
- 事务是恢复和并发控制的基本单位
-
事务的创建
- 在创建事务的过程中,用户需要使用innoDB类型或者BDB类型的数据表,其基本命令结构为:
create table tableName ( column defintions) type = innoDB/BDB;
- 也可以对表类型进行修改:
alter table tableName type = innoDB/BDB;
- 开启事务:
-
- 在创建事务的过程中,用户需要使用innoDB类型或者BDB类型的数据表,其基本命令结构为: