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引擎使用的生产业务场景: