MySQL 事务
2020年04月04日 database

事务属性原子性(atomicity)一个事务必须被视为一个不可分割的最小工作单元,整个事务中的所有操作必须全部执行,不允许只执行其中的一部分操作;一致性(consistency)一个事务中的所有操作要么全部执行成功,要么全部执行失败;隔离性(isolation)一个事务所做的修改在最终提交以前,对其他事务是不可见的;持久性(durability)一旦事务提交,则其所做的修改就会持久化保存到磁盘中,此时即使系统崩溃,修改的数据也不会丢失;隔离级别InnoDB存储引擎默认的事务隔离级别是可重复...

mysql transaction
阅读全文

半同步复制半同步复制(semi-synchronous replication),主库在执行完客户端提交的事务后不是立刻返回给客户端,而是等待至少一个从库接收到并写到relay log中才返回给客户端。通过rpl_semi_sync_master_wait_point参数,控制半同步模式下主库在返回给会话事务成功之前提交事务的方式。参数 rpl_semi_sync_master_wait_point 有两个值: AFTER_COMMIT(5.6默认值) AFTER_SYNC(5.7默认...

MySQL中有六种日志文件,分别是: 重做日志(redo log) 回滚日志(undo log) 归档日志(binlog) 错误日志(error log) 慢查日志(slow query log) 查询日志(general log) 中继日志(relay log)错误日志(error log)Problems encountered starting, running, or stopping mysqld通用查询日志(general query log)通用日志:Estab...

lock与latch在数据库中,lock与latch都可以被称为“锁”。但是两者有着截然不同的含义,本章主要关注的是lock。latch一般称为闩锁(轻量级的锁),因为其要求锁定的时间必须非常短。若持续的时间长,则应用的性能会非常差。在InnoDB存储引擎中,latch又可以分为mutex(互斥量)和rwlock(读写锁)。其目的是用来保证并发线程操作临界资源的正确性,并且通常没有死锁检测的机制。lock的对象是事务,用来锁定的是数据库中的对象,如表、页、行。并且一般lock的对象仅在事务...

乐观锁🔒概念定义:系统认为数据的更新在大多数情况下是不会产生冲突的,只在数据库更新操作提交的时候才对数据作冲突检测。如果检测的结果出现了与预期数据不一致的情况,则返回失败信息。实现方式:在数据库表增加一个版本号的字段version,每次更新一行记录都使得该行版本号加一,开始更新之前先获取version的值,更新提交的时候带上之前获取的version值与当前version值作比较,如果不相等则说明version值发生了变化则检测到了并发冲突,本次操作执行失败,如果相等则操作执行成功。upda...

自动创建月表通过结合MySQL存储过程与定时任务自动创建月表 优势:由于使用数据内置实现无外部依赖,不会因为网络环境和外部服务的变化导致稳定性相关的问题; 缺点:缺乏针对定时任务漏执行配套的监控设施;-- 自动建表存储过程DELIMITER $$CREATE PROCEDURE `P_AUTO_CREATE_TABLE`()BEGIN set @t_test1 = "CREATE TABLE `t_test1_${month}` ( `id` bigint(20) unsigned ...