15、mysql事物和引擎

 

15.1、数据库事物介绍:

1、什么是数据库事物:

2、事物的四大特性:

3、事物的开启:

提交事物:

commit;

设置全局自动提交或不提交事物:

set global autocommit = ON/OFF;

回滚事物:

rollback;

4、mysql事务的并发问题:

(1)脏读:事务A读取了事务B更新未提交的数据,然后B回滚操作,那么A读取到的数据是脏数据;

(2)不可重复读:事务 A 多次读取同一数据,事务 B 在事务A多次读取的过程中对数据作了更新并提交,导致事务A多次读取同一数据时,结果不一致;

(3)幻读:系统管理员A将数据库中所有学生的成绩从具体分数改为ABCDE等级,但是系统管理员B就在这个时候插入了一条具体分数的记录并提交,

当系统管理员A改结束后发现还有一条记录没有改过来,就好像发生了幻觉一样,这就叫幻读;

小结:不可重复读的和幻读很容易混淆,不可重复读侧重于修改,幻读侧重于新增或删除,解决不可重复读的问题只需锁住满足条件的行,解决幻读需要锁表;

5、mysql的事物隔离级别:

(1)mysql隔离级别和事物并发对应的关系:

事物隔离的级别越高,则并发性就越差;

(2)my.cnf配置:

transaction_isolation = READ-COMMITTE

###########################################################

#1.READ-UNCOMMITTED读未提交;2.READ-COMMITTE读已提交;

#3.REPEATABLE-READ可重复读(默认);4.SERIALIZABLE串行;

###########################################################

binlog_format = mixed

##########################################################

#row,statement模式,mixed兼容row和statement;

#innodb的事务隔离级别是read-commited或read-uncommited模式时,

#binlog不可以使用statement模式;

##########################################################

15.2、mysql引擎介绍:

1、什么是存储引擎:

2、查看数据库支持的引擎:

mysql> show engines\G;

*************************** 1. row ***************************

Engine: CSV

Support: YES

Comment: CSV storage engine

Transactions: NO

XA: NO

Savepoints: NO

*************************** 2. row ***************************

Engine: InnoDB

Support: DEFAULT

Comment: Supports transactions, row-level locking, and foreign keys

Transactions: YES

XA: YES

Savepoints: YES

*************************** 3. row ***************************

Engine: MRG_MYISAM

Support: YES

Comment: Collection of identical MyISAM tables

Transactions: NO

XA: NO

Savepoints: NO

*************************** 4. row ***************************

Engine: BLACKHOLE

Support: YES

Comment: /dev/null storage engine (anything you write to it disappears)

Transactions: NO

XA: NO

Savepoints: NO

*************************** 5. row ***************************

Engine: MyISAM

Support: YES

Comment: MyISAM storage engine

Transactions: NO

XA: NO

Savepoints: NO

*************************** 6. row ***************************

Engine: MEMORY

Support: YES

Comment: Hash based, stored in memory, useful for temporary tables

Transactions: NO

XA: NO

Savepoints: NO

*************************** 7. row ***************************

Engine: FEDERATED

Support: NO

Comment: Federated MySQL storage engine

Transactions: NULL

XA: NULL

Savepoints: NULL

*************************** 8. row ***************************

Engine: PERFORMANCE_SCHEMA

Support: YES

Comment: Performance Schema

Transactions: NO

XA: NO

Savepoints: NO

3、查看表的引擎:

mysql> show create table test\G;

*************************** 1. row ***************************

Table: test

Create Table: CREATE TABLE `test` (

`id` int(4) NOT NULL AUTO_INCREMENT,

`name` varchar(30) DEFAULT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8

4、MyISAM引擎:

(1)什么是MyISAM引擎:

(2)MyISAM引擎的特点:

(3)MyISAM引擎使用的生产业务场景:

你可能感兴趣的:(15、mysql事物和引擎)