mysql数据库事务是什么,能简单定义一下吗?
对于事务官方定义相比已经看过很多;简单来说MySQL事务其实就是一组SQL语句的集合,它们是一根绳是的蚂蚱,要么都成功要么全军覆没;
需要注意的是在MySQL支持事务的数据库引擎只有Innodb。
使用事务处理一组SQL操作可以保证数据库的完整性。举个很常见的例子:
银行转账的业务:A用户给B用户转账1000
SQL1: A 用户 -1000;
SQL2:B 用户 +1000;
这两个SQL顺序执行,如果两个SQL都执行成功,那么意味着此处转账业务的成功;
如果SQL1执行成功,SQL2执行时出现异常。那么SQL1执行的结果是要回退的。要不然可就出大问题啦!
使用事务就可以保证SQL1和SQL2执行结果保持一致。
还有很重要的一点不得不提那就是高并发下的事务处理;共并发请教下事务操作可能会出现脏读、幻读、丢失更新的情况;需要调试事务的隔离级别进行相应处理
(事务隔离级别:可序列化(SERIALIZABLE)、可重复读(REPEATABLE_READ)、提交读(READ_COMMITTED])、未提交读(READ_UNCOMMITTED))
mysql事务的四大特性?
MySQL事务具有四大特性,即原子性、一致性、隔离性和持久性。
原子性表示事务具有不可分割性,要么全部执行,要么全部回滚。
一致性意味着事务执行前后,系统的约束条件必须保持一致。
隔离性是指多个事务彼此之间互不干扰,各自执行各自的操作,不会出现数据冲突。
持久性要求一旦事务提交,其结果就永久保存在数据库中,即使系统崩溃也不会丢失。这四个特性是保证数据一致性和完整性的基础。
mysql什么存储引擎支持事务处理,支持外键和并发系统?
mysql的InnoDB存储引擎支持事务处理,支持外键和并发系统。
InnoDB存储引擎:
InnoDB是事务型数据库的首选引擎,支持事务安全表(ACID),其它存储引擎都是非事务安全表,支持行锁定和外键,MySQL5.5以后默认使用InnoDB存储引擎。
支持事务处理,支持外键,支持崩溃修复能力和并发控制。如果需要对事务的完整性要求比较高(比如银行),要求实现并发控制(比如售票),那选择InnoDB有很大的优势。如果需要频繁的更新、删除操作的数据库,也可以选择InnoDB,因为支持事务的提交(commit)和回滚(rollback)。
mysql binlog事务怎么记录?
用来判断binlog中每条记录是在哪个服务器上产生的,在主主复制架构中可以防止无限复制循环。#Enteranamefortheerrorlogfile.Otherwiseadefaultnamewillbeused.log-error=err.log#Enteranameforthequerylogfile.Otherwiseadefaultnamewillbeused.#log=#Enteranamefortheslowquerylogfile.Otherwiseadefaultnamewillbeused.#log-slow-queries=#Enteranamefortheupdatelogfile.Otherwiseadefaultnamewillbeused.#log-update=#Enteranameforthebinarylog.Otherwiseadefaultnamewillbeused.#log-bin=