学完redis再来复习mysql,温故知新:)
查看mysql支持的存储引擎

show engines

现在默认都是innodb了,支持事务;其他的像myisam和memory都不支持事务

事务的acid特性

  1. 原子性atomicity
    一起生,一起死
  2. 一致性consistency
     状态切换完整
  3. 隔离性isolation
  4. 持久性durability
    事务提交后不能撤销

事务使用

#开启事务
set autocommit=0;
[start transaction;]

my sql command1...
#savepoint a;#设置保存点
my sql command2...

#rollback to a;#回滚到a,即a下面的没有执行

#结束事务
commit;

事务隔离级别

设置为serializable串行化,可以解决并发问题:脏读update,幻读insert,不可重复读repeat select,但是效率低。
mysql默认隔离级别为REPEATABLE-READ,不能解决幻读,其他两个ok。
oracle默认read committed
查看当前隔离级别
select @@tx_isolation

设置当前连接的隔离级别:
set session transaction isolation level serializable;

设置数据库系统的全局隔离级别:
set global transaction isolation level read committed;

以下四种隔离级别,x代表不能解决的并发问题:

read uncommitted 脏读x,幻读x,不可重复读x
read committed  脏读,幻读x,不可重复读x
REPEATABLE-READ 脏读,幻读X,不可重复读
serializable  脏读,幻读,不可重复读

视图语法

create view myv1 #视图名
as
#查询语句
select id from user where score>90;

使用视图

 select * from myv1 where id>2;

删除视图

drop view 视图名1,视图名2,....