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中具有回滚日志,记录数据的操作,回滚日志仅当没有事务通过视图使用时,才会被删除。
而长事务则意味着回滚日志不能得到及时的删除,回滚日志占据的存储空间会越来越多。
因此需要尽量避免使用长事务。