美文网首页
sql自学笔记(二十五)——MySQL8.0版本的新特性(十五)

sql自学笔记(二十五)——MySQL8.0版本的新特性(十五)

作者: itczt | 来源:发表于2019-05-13 17:21 被阅读0次

锁定语句选项

SELECT ...... FOR SHARESELECT ....... FOR UPDATE中支持 NOWAIT、SKIP LOCKED选项。
对于NOWAIT ,如果请求的行被其他事务锁定时,语句立即返回。
对于SKIP LOCKED,从返回的结果集中移除被锁定的行。

在8.0中对这两个选项的使用

新建一张表,它只有一个字段,设置为主键

create table t(i int,primary key(i));

生成一些初始化的数据

insert into t(i) values(1),(2),(3);

在第一个会话中一个事物,把相关的事务加上锁

start transaction;

更新一下,给i=2加上一条排他锁

uodatet set i=0 where i=2;

我们正在更新这个数据,而且不进行提交
我们再打开另一个窗口



我们也启用一个事务

start transaction;

首先我们来试一下

select * from t where i=2 for update;

由于前面的会话它占用了锁,所以它会一直等待,一直等待到这个语句执行超时。



这里我们就不等待了,直接中断他。
然后我们启动一个会话,直接加一个nowait选项

select * from t where i=2 for update nowait;

它会返回一个错误,直接告诉我们这个数据已经被占用,我们用的是一个和NOWAIT形式就是不等待锁。
另外还有一种

select * from t where i=2 for update skip locked;

跳过这个锁定的数据


其他改进功能

  • 支持部分快速DDL,ALTER TABLE ...ALGORITHM = INSTANT;
  • InnoDB临时表,使用共享的临时表空间ibtmpl
  • 新增静态变量innodb_decdicated _server,自动配置InnoDB内存参数:innodb_buffer_pool_size等。
  • 新增表INFORMATION _ SCHEMA.INNODB _ CACHED _ INDEXES、显示每个索引缓存在InnoDB缓冲池中的索引页数。
  • 新增视图INFORMATION _ SCHEMA,INNODB_TABLESACES_BRIEF,为InnoDB表空间提供相关表数据信息。
  • 默认ALTER TABLESPACE......RENAME TO重命名通用表空间。
  • 支持使用innodb _ directories选项在服务器停止时将表空间文件移动到新的位置。
  • InnoDB表空间加密特性支持重做日志和撤销日志

相关文章

网友评论

      本文标题:sql自学笔记(二十五)——MySQL8.0版本的新特性(十五)

      本文链接:https://www.haomeiwen.com/subject/gaukaqtx.html