一、简介 MySQL事务是一组DML(select\update\delete)语句的集合,mysql数据库中InnoDB存储引擎支持开启事务,MyISAM不支持。MySQL事务默认自动提交,可通过begin、commit、rollback手动控制。 二、特性 事务有四大特性,原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability) 2.1 原子性 事务中的操作要么全执行,要么全不执行 2.2 一致性 数据库的完整性约束没有被破坏,事务执行的前后都是合法的数据状态 eg:甲乙两个银行账户的总金额再转账前后必须一致,只允许事务执行过程中短暂出现不一致的情况 2.3 隔离性 隔离性是指,事务内部的操作与其他事务是隔离的,并发执行的各个事务之间不能互相干扰 2.4 持久性 持久性是指事务一旦提交,它对数据库的改变就应该是永久性的 三、事务并发的问题 3.1 读脏 读到了其他事务未提交的数据 3.2 不可重复度 一个事务内的多次查询返回了不同的结果,这是由于在查询过程中,数据被另外一个事务修改并提交了 3.3 幻读 幻读是指在.... 有更新! MySQL--事务 程序人生
使用llike查询的时候,%在第一个位置,索引失效 or条件,索引并列,两个字段都是索引字段,才会生效 MySQL一个索引可以包含多个字段,对于多列索引,只有使用了这些字段中的第一个字段时,索引才会生效 后面遇到的再添加 有更新! mysql索引失效 程序人生
1、示例 使用explain语句可以分析查询语句 eg:explain select * from org_user t1 left join org_relation t2 on t2.user_id_ = t1.id_ left join org_group t3 on t2.group_id_ = t3.id_ 这个语句会产生如下信息 再来一个使用union的sql eg: EXPLAIN SELECT * FROM ( ( SELECT * FROM org_relation LIMIT 11 ) UNION ( SELECT * FROM org_relation LIMIT 1 ) ) a 产生如下信息 2、结果分析 2.1、id id是select的查询序列号 2.2 、select_type select_type表示select语句的类型(dependent表示一个依赖关系,例如一个查询对子查询语句做了筛选操作,则子查询就依赖与外面的sql,子查询最终结果取决于外面的sql语句) simple表示一个不包含连接和子查询的查询 primary表示主查询(最外层的.... 有更新! mysql explain命令分析sql语句性能 程序人生
1、查看连接次数 show STATUS like 'Connections'; 2、查看mysql服务器的上线时间 show STATUS like 'Uptime'; 3、慢查询的次数 show STATUS like 'Slow_queries'; 4、查询操作的次数 show STATUS like 'Com_select'; 5、插入操作的次数 show STATUS like 'Com_insert'; 6、更新操作的次数 show STATUS like 'Com_update'; 7、更新操作的次数 show STATUS like 'Com_delete'; 有更新! mysql查询数据库性能参数 程序人生
mysql在操作视图的时候爆出以下错误 The user specified as a definer ('root'@'%') does not exist 这个错误一般是因为视图是我们从其他地方复制过来的,创建视图的用户不是我们本地的用户,对视图做一定的修改就可以解决这个问题,可以将视图的用户改成本系统的用户,或者删除视图,再创建 执行下面的命令查看创建信息 show create table time_zone_view 拿到创建语句,可以看到里面定义了一个创建者,我们需要删除这个视图,修改创建语句,删除语句中的definer再执行命令创建视图 这样就可以解决这个问题了 有更新! mysql操作视图出现用户不存在 程序人生
拉取镜像 docker pull mysql:5.7.40 创建文件夹 mkdir -p /hjp/mysql/5.7.40/log mkdir -p /hjp/mysql/5.7.40/data mkdir -p /hjp/mysql/5.7.40/conf 创建配置文件 vi /hjp/mysql/5.7.40/conf/custom.cnf 内容如下 [client] default-character-set=utf8mb4 [mysql] default-character-set=utf8mb4 [mysqld] init_connect="SET collation_connection = utf8mb4_unicode_ci" init_connect="SET NAMES utf8mb4" character-set-server=utf8mb4 collation-server=utf8mb4_unicode_ci skip-character-set-client-handshake skip-name-resolve explicit_defaults_.... 有更新! docker安装mysql 程序人生