隔离级别
- 读未提交:一个事务没提交以前,做的变更能被其他事务看到
- 读提交:一个事务提交后,做的变更才会被其他事务看到
- 可重复读:一个事务运行前和运行中看到的数据是一致的,未提交的事务对其他事务来说也不可见
- 串行化:对于同一条记录,写会加写锁,读会加读锁。当读写冲突,后访问的事务必须等待前一个事务执行完,才能继续执行。
视图概念
视图是查询生成的一个虚拟表,本身不存储数据,查询要到实际的表中查。
回滚日志
在事务下操作的数据会记录到回滚日志,最新的值通过回滚操作,可以得到前一个状态的值。
长事务
长事务对应的的事务视图长时间存在,对应的回滚日志也是一直存在,占用大量内存空间。
如果你是业务开发负责人同时也是数据库负责人,你会有什么方案来避免出现或者处理这种情况呢?
1.通过information_schema.innodb_trx表监控事务的持续时间
2.增加undo表空间
3.通过配置参数max_execution_time指定select执行的最长时间
4.利用pt工具监控长事务