2023学习日志

2023-07-09 09:48:57 浏览数 (1)

rust

接收命令行参数

可以通过std::env::args函数获取包含命令行全部参数迭代器,并通过collect方法可以将迭代器转换为集合

读取文件

可以通过std::fs::read_to_string方法读取文件,并将其中内容以std::io::Result<String>的类型返回。

重构改进模块性及错误处理

  • 将main函数中的逻辑提取为独立的函数,并将其代码转移到src/lib 目录下对应文件。
  • 当函数要返回多个值时,寻找值之间的联系,尽量定义专门的结构体
  • 函数有返回值时,返回引用与对原变量进行clone之间进行取舍。
  • 将可能导致panic的代码放在build方法中,然后在build方法中调用new方法来返回相应结构体,确保new方法不会发生panic
  • 避免函数或方法发生panic,将返回值设置为Result<T,E>类型

mysql45讲

第三讲-事务隔离性

ACID---原子性、一致性、隔离性、持久性

隔离级别

  • 读未提交 事务未提交时,所做的变更就能被其他事务看到
  • 读提交 事务提交后,所做的变更才能被其他事务看到
  • 可重复读 事务执行过程中,所看到的数据保持一致性,不会受到其他事务提交的影响
  • 串行化 指通过加读写锁的形式,使事务的结果与串行执行的结果相同

隔离与视图

读提交可重复读级别,均会创建视图可重复读事务开始时创建视图,而读提交sql语句执行时创建视图。

长事务与回滚、存储

mysql中具有回滚日志,记录数据的操作,回滚日志仅当没有事务通过视图使用时,才会被删除

长事务则意味着回滚日志不能得到及时删除,回滚日志占据的存储空间会越来越多。

因此需要尽量避免使用长事务

0 人点赞