摘要:
对于IN查询,MySQL会根据当前表数据结构(索引)和数据分布(统计信息和预估)生成多种执行计划,并根据执行成本挑选出“最优执行计划”。 假设有查询 有下面三种执行计划: 1、对表student做表扫描2、循环IN列表中每个值,对表student上class_id列做索引查找3、计算IN列表中最大值 阅读全文
摘要:
全局参数system_time_zone系统时区,在MySQL启动时会检查当前系统的时区并根据系统时区设置全局参数system_time_zone的值。 The system time zone. When the server starts, it attempts to determine th 阅读全文
摘要:
参数定义gtid_executed,全局参数,GTID集合包含所有在该服务器上执行过的事务编号和使用set gtid_purged语句设置过的事务编号,使用SHOW MASTER STATUS和SHOW SLAVE STATUS命令得到的Executed_Gtid_Set列值就取自于全局参数gitd 阅读全文
摘要:
问题表现:系统增删改操作明显变慢(由原来的几十毫秒变为几十秒) 查看未提交事务 发现无未提交事务。 查看执行时间较长的进程 未发现异常 PS1: processlist表中的TIME字段是指进程处理目前状态的时间,而不是进程开始执行到现在的时间。 查看事务版本Purge情况 执行结果为: 从上面可看 阅读全文
摘要:
MySQL数据排序 MySQL中对数据进行排序有三种方式:1、常规排序(双路排序)2、优化排序(单路排序)3、优先队列排序 优先队列排序使用堆排序算法,利用堆数据结构在所有数据中取出前N条记录。 常规排序和优化排序 常规排序(双路排序):先对排序列+行指针(RowID或主键)进行排序,再根据行指针取 阅读全文
摘要:
使用SELECT INTO OUTFILE+SOURCE批量KILL 使用GROUP_CONCAT获取KILL脚本 阅读全文
摘要:
MySQL和SQL Server两种数据库在REPEATABLE-READ事务隔离级别实现方式不同,导致使用上也存在差异。 在MySQL中,默认使用REPEATABLE-READ事务隔离级别,MySQL通过MVCC (Multiversion Concurrency Control)来实现REPEA 阅读全文
摘要:
MySQL支持的四种事务隔离级别 READ-UNCOMMITTED READ-COMMITTED REPEATABLE-READ SERIALIZABLE 查看全局事务隔离级别和会话事务隔离级别 SHOW GLOBAL VARIABLES LIKE 'tx_isolation'; SHOW SESS 阅读全文
摘要:
分布式事务两阶段提交 在分布式事务中,需要协调所有分布式原子事务参与者,并决定提交或回滚分布式事务,因此采用两阶段提交协议: 第一阶段为请求阶段或表决阶段,事务协调者通知事务参与者准备提交或取消事务,然后进入表决过程,事务参与者将表决结果告知协调者是否同意提交事务; 第二阶段是提交阶段,协调者收集到 阅读全文
摘要:
问题描述 按照正常情况,从库上只执行查询,但在从库上发现有长时间未提交的事务,联系开发后确认程序的配置问题. 解决办法 修改前代码为(基于spring框架): 修改后的代码为: Spring事务中propagation属性选项: propagation属性默认值REQUIRED会开启事务,会在查询开 阅读全文