04 2019 档案

摘要:未提交事务 长期未提交事务,指开启事务后,长时间未向MySQL发出SQL执行请求或事务处理(COMMIT/ROLLBACK)请求,在系统表`information_schema`.`INNODB_TRX` 中状态为RUNNING,而在`information_schema`.`PROCESSLIST 阅读全文
posted @ 2019-04-29 15:14 TeyGao 阅读(12091) 评论(0) 推荐(3) 编辑
摘要:问题描述执行查询或SHOW命令,返回错误信息:Got error 28 from storage engine 问题原因临时文件所在磁盘空间已满解决办法1、使用df -lh查看磁盘空间使用情况;2、使用SHOW VARIABLES LIKE '%tmpdir%'查看临时文件所在目录;清理文件或修改t 阅读全文
posted @ 2019-04-28 17:05 TeyGao 阅读(880) 评论(0) 推荐(0) 编辑
摘要:Linux会限制文件句柄数量,默认为1024,当超过该阈值后,会报"to many open files" ulimit命令 阅读全文
posted @ 2019-04-28 11:08 TeyGao 阅读(265) 评论(0) 推荐(0) 编辑
摘要:在一次的优化过程中,由于没有关注执行计划中type列,仅看key列来查看"使用到的索引",导致优化过程走了不少弯路。 以下面SQL为例: 走索引查找的执行计划为: 走索引扫描执行计划为: 上面两个执行计划都使用索引idx_wave_no,但: 第一个执行计划影响行数为14238,与IN查询中的值数量 阅读全文
posted @ 2019-04-25 21:25 TeyGao 阅读(352) 评论(0) 推荐(0) 编辑
摘要:MUMA架构 在单实例的MySQL服务器上,通过会为MySQL的Buffer Pool分配50%至70%甚至更高的内存,让MySQL 服务会尽可能多地占用系统资源。在基于NUMA系统中,内存被分配到各NUMA节点上,系统的默认为进程分配该进程所在NUMA节点的内存,而数据库应用又希望使用到所有CPU 阅读全文
posted @ 2019-04-24 18:21 TeyGao 阅读(232) 评论(0) 推荐(0) 编辑
摘要:SQL语句: 执行计划: 执行计划JOSN: 将wave_no IN修改为CONCAT(wave_no,'') IN进行测试 SQL语句: 执行计划: 执行计划JSON: 去除org_No/distribute_No/warehouse_No任意列的过滤条件,如去除AND org_No= '661' 阅读全文
posted @ 2019-04-23 14:01 TeyGao 阅读(313) 评论(0) 推荐(0) 编辑
摘要:问题描述 版本:MySQL 5.7.24 SQL语句: 该SQL在慢日志中记录执行信息为: 表picking_locate_d上索引如下: 表picking_locate_d上数据量为: 当IN查询内部的值数量小于等于14238时,查询时间0.31秒,执行计划为: 当IN查询内部的值数量大于等于14 阅读全文
posted @ 2019-04-22 20:15 TeyGao 阅读(265) 评论(0) 推荐(0) 编辑
摘要:查看CPU信息 阅读全文
posted @ 2019-04-22 13:38 TeyGao 阅读(240) 评论(0) 推荐(0) 编辑
摘要:cpufrequtils命令 输出CPU信息为: hardware limits显示CPU支持的频率范围current CPU frequency表示当前的CPU运行频率available cpufreq governors表示CPU支持的运行模式 当前CPU运行在最低频率下,需要将CPU改为高性能 阅读全文
posted @ 2019-04-22 10:58 TeyGao 阅读(736) 评论(0) 推荐(0) 编辑
摘要:使用Ping测试丢包 ## ping测试 ## -c 100表示100次 ping -c 100 192.168.1.2 输出结果: ping -c 100 192.168.1.2PING 192.168.1.2 (192.168.1.2) 56(84) bytes of data.64 bytes 阅读全文
posted @ 2019-04-21 22:55 TeyGao 阅读(473) 评论(0) 推荐(0) 编辑
摘要:MySQL Explain新用法: 在EXPLAIN的输出结果中,有一行Type用来表示MYSQL使用哪种访问类型来从MYSQL表中找到需要的行。 使用EXPLAIN EXTENDED 命令+SHOW WARNINGS命令来看在SQL语句被执行前被执行优化器改写成的新SQL: 阅读全文
posted @ 2019-04-17 22:26 TeyGao 阅读(392) 评论(0) 推荐(0) 编辑
摘要:MySQL Event 创建EVENT语法: DEFINER:指定事件执行时使用的用户账号,当事件执行时,会根据该指定账号的权限来检查事件定于的语句是否有权限执行。如果创建Event时未指定DEFINER,则默认使用创建事件的用户,与显示指定DEFINER=CURRENT_USER相同; [ON C 阅读全文
posted @ 2019-04-17 22:16 TeyGao 阅读(522) 评论(0) 推荐(0) 编辑
摘要:mysql error code(备忘) 1005:创建表失败 1006:创建数据库失败 1007:数据库已存在,创建数据库失败 1008:数据库不存在,删除数据库失败 1009:不能删除数据库文件导致删除数据库失败 1010:不能删除数据目录导致删除数据库失败 1011:删除数据库文件失败 101 阅读全文
posted @ 2019-04-17 21:55 TeyGao 阅读(927) 评论(0) 推荐(0) 编辑
摘要:问题描述 在MySQL 错误日志中发下以下错误信息:[ERROR] /export/servers/mysql/bin/mysqld: The table '#sql-xxxx-xxx' is full 经过沟通发现在MySQL 版本为5.5版本的服务器上运行ALTER TABLE操作失败,操作表数 阅读全文
posted @ 2019-04-17 21:54 TeyGao 阅读(707) 评论(0) 推荐(0) 编辑
摘要:【此文抄自同事的邮件,当作笔记学习】 环境描述Mysql 5.5.21OS centos 5.8zabbix agent 2.4.3 情况描述现象数据库处于运行状态,但是无法创建新的连接,监控报警数据库无法连接,连接不上MySQL,一直处于等待状态。 Mysql的error日志报错: Mysqld进 阅读全文
posted @ 2019-04-17 21:45 TeyGao 阅读(523) 评论(0) 推荐(0) 编辑
摘要:在某系统中想使用NOT IN子查询进行数据过滤,SQL为: 上面SQL执行时间未6.84秒,相关表数据量为:表TB001:507716表TB002:11266065 为验证NOT IN 子查询对查询的影响,移除NOT IN子查询后,SQL调整为: SQL执行时间未0.15秒 将上面NOT IN语句转 阅读全文
posted @ 2019-04-17 14:47 TeyGao 阅读(165) 评论(0) 推荐(0) 编辑
摘要:在很多业务场景中,会使用NOT EXISTS语句来确保返回数据不存在于特定集合,部分场景下NOT EXISTS语句性能较差,网上甚至存在谣言"NOT EXISTS无法走索引"。 首先需要明确的是:索引不是万能的,使用索引的执行计划并不一定就是最好的执行计划。 以某监控平台为例,使用NOT EXIST 阅读全文
posted @ 2019-04-17 00:00 TeyGao 阅读(599) 评论(0) 推荐(0) 编辑
摘要:在MySQL中,IN查找经常出现性能问题,相同SQL在MySQL不同版本中表现不同。 准备测试数据: 表tb0001中包含上百万数据,表tb002中包含10条数据。 测试SQL 1: MySQL 5.5.14版本执行计划为: MySQL 5.7.24版本执行计划为: 在MySQL 5.7.24版本使 阅读全文
posted @ 2019-04-16 15:10 TeyGao 阅读(525) 评论(0) 推荐(0) 编辑
摘要:使用MySQL Profiling 使用MySQL Trace 阅读全文
posted @ 2019-04-16 13:55 TeyGao 阅读(321) 评论(0) 推荐(0) 编辑
摘要:对于IN查询,MySQL会根据当前表数据结构(索引)和数据分布(统计信息和预估)生成多种执行计划,并根据执行成本挑选出“最优执行计划”。 假设有查询 有下面三种执行计划: 1、对表student做表扫描2、循环IN列表中每个值,对表student上class_id列做索引查找3、计算IN列表中最大值 阅读全文
posted @ 2019-04-16 13:42 TeyGao 阅读(254) 评论(0) 推荐(0) 编辑
摘要:全局参数system_time_zone系统时区,在MySQL启动时会检查当前系统的时区并根据系统时区设置全局参数system_time_zone的值。 The system time zone. When the server starts, it attempts to determine th 阅读全文
posted @ 2019-04-10 22:05 TeyGao 阅读(19534) 评论(0) 推荐(1) 编辑
摘要:参数定义gtid_executed,全局参数,GTID集合包含所有在该服务器上执行过的事务编号和使用set gtid_purged语句设置过的事务编号,使用SHOW MASTER STATUS和SHOW SLAVE STATUS命令得到的Executed_Gtid_Set列值就取自于全局参数gitd 阅读全文
posted @ 2019-04-10 16:08 TeyGao 阅读(2571) 评论(0) 推荐(0) 编辑
摘要:问题表现:系统增删改操作明显变慢(由原来的几十毫秒变为几十秒) 查看未提交事务 发现无未提交事务。 查看执行时间较长的进程 未发现异常 PS1: processlist表中的TIME字段是指进程处理目前状态的时间,而不是进程开始执行到现在的时间。 查看事务版本Purge情况 执行结果为: 从上面可看 阅读全文
posted @ 2019-04-08 22:09 TeyGao 阅读(763) 评论(0) 推荐(0) 编辑
摘要:MySQL数据排序 MySQL中对数据进行排序有三种方式:1、常规排序(双路排序)2、优化排序(单路排序)3、优先队列排序 优先队列排序使用堆排序算法,利用堆数据结构在所有数据中取出前N条记录。 常规排序和优化排序 常规排序(双路排序):先对排序列+行指针(RowID或主键)进行排序,再根据行指针取 阅读全文
posted @ 2019-04-04 14:19 TeyGao 阅读(351) 评论(0) 推荐(0) 编辑
摘要:使用SELECT INTO OUTFILE+SOURCE批量KILL 使用GROUP_CONCAT获取KILL脚本 阅读全文
posted @ 2019-04-04 09:38 TeyGao 阅读(1282) 评论(0) 推荐(0) 编辑
摘要:MySQL和SQL Server两种数据库在REPEATABLE-READ事务隔离级别实现方式不同,导致使用上也存在差异。 在MySQL中,默认使用REPEATABLE-READ事务隔离级别,MySQL通过MVCC (Multiversion Concurrency Control)来实现REPEA 阅读全文
posted @ 2019-04-02 16:02 TeyGao 阅读(178) 评论(0) 推荐(0) 编辑
摘要:MySQL支持的四种事务隔离级别 READ-UNCOMMITTED READ-COMMITTED REPEATABLE-READ SERIALIZABLE 查看全局事务隔离级别和会话事务隔离级别 SHOW GLOBAL VARIABLES LIKE 'tx_isolation'; SHOW SESS 阅读全文
posted @ 2019-04-02 15:51 TeyGao 阅读(789) 评论(0) 推荐(0) 编辑
摘要:分布式事务两阶段提交 在分布式事务中,需要协调所有分布式原子事务参与者,并决定提交或回滚分布式事务,因此采用两阶段提交协议: 第一阶段为请求阶段或表决阶段,事务协调者通知事务参与者准备提交或取消事务,然后进入表决过程,事务参与者将表决结果告知协调者是否同意提交事务; 第二阶段是提交阶段,协调者收集到 阅读全文
posted @ 2019-04-02 14:09 TeyGao 阅读(900) 评论(0) 推荐(0) 编辑
摘要:问题描述 按照正常情况,从库上只执行查询,但在从库上发现有长时间未提交的事务,联系开发后确认程序的配置问题. 解决办法 修改前代码为(基于spring框架): 修改后的代码为: Spring事务中propagation属性选项: propagation属性默认值REQUIRED会开启事务,会在查询开 阅读全文
posted @ 2019-04-02 13:47 TeyGao 阅读(151) 评论(0) 推荐(0) 编辑
摘要:TPS计算规则 在MYSQL 中,TPS(Transaction Per Second)的计算方法为 (com_commit+com_rollback)/time,但com_commit和com_rollback记录的是显式事务的,因此隐式提交的事务不会被算到TPS中,如果程序未使用显示事务,即使在 阅读全文
posted @ 2019-04-02 13:26 TeyGao 阅读(844) 评论(0) 推荐(0) 编辑
摘要:LOAD DATA INFILE导入数据 语法: LOAD DATA 命令中的默认值:FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'LINES TERMINATED BY '\n' STARTING BY '' 文件参数: LOAD 阅读全文
posted @ 2019-04-01 22:13 TeyGao 阅读(290) 评论(0) 推荐(0) 编辑
摘要:SELECT INTO OUTFILE语法格式: 在将选择的记录导出到.csv文件时,出现提示“The MySQL server is running with the --secure-file-priv option so it cannot execute this statement”。解决 阅读全文
posted @ 2019-04-01 21:14 TeyGao 阅读(3542) 评论(0) 推荐(0) 编辑
摘要:InnoDB并发线程控制 MySQL InnoDB存储引擎提供innodb_thread_concurrency来控制进入InnoDB 存储引擎的线程数,以限制InnoDB存储引擎层的并发量。当innodb_thread_concurrency>0时,表示开启线程数检查机制,当有新的Mysql线程调 阅读全文
posted @ 2019-04-01 17:26 TeyGao 阅读(587) 评论(0) 推荐(0) 编辑
摘要:线程池技术 在MySQL社区版中,MySQL使用one-thread-per-connection的方式来处理数据库连接,即当MySQL客户端与服务器端建立连接时会创建一个线程来专门处理该连接的所有SQL请求。one-thread-per-connection优缺点: 在MySQL企业版中,MySQ 阅读全文
posted @ 2019-04-01 17:00 TeyGao 阅读(1074) 评论(0) 推荐(0) 编辑