mysql客户端重庆_MySQL:MySQL工具以及5.7mysqlbinlog|mysql速度极慢问题
随便记录点 5.7.22代码
MySQL工具主要分为 交互式和非交互式
交互式
就是我们平时用的交互式命令方式
非交互式(batch mode)
主要用于解析binlog和批量导入sql,每次都会读取1行数据到buffer
如果是binlog,那么每次大约读取的原始数据为76字节,及mysqlbinlog解析出来的一行
AAAAAAAAAP4AAAAAAAAAAP4AAAAAAAAAAP4AAAAAAAAAAP4AAAAAAAAAAP4AAAAAAAAAAP4AAAAA
AAAAAP4AAAAAAAAAAP4KAAAAAAAAAP4UAAAAAAAAAP4eAAAAAAAAAP4oAAAAAAAAAP4yAAAAAAAA
AP48AAAAAAAAAP5GAAAAAAAAAP5QAAAAAAAAAP5aAAAAAAAAAP4KAAAAAAAAAP4AAAAAAAAAAP4A
AAAAAAAAAP4AAAAAAAAAAP4AAAAAAAAAAP4AAAAAAAAAAP4AAAAAAAAAAP4AAAAAAAAAAP4AAAAA
AAAAAP4AAAAAAAAAAP4AAAAAAAAAAP4KAAAAAAAAAP4UAAAAAAAAAP4eAAAAAAAAAP4oAAAAAAAA
AP4yAAAAAAAAAP48AAAAAAAAAP5GAAAAAAAAAP5QAAAAAAAAAP5aAAAAAAAAAP4KAAAAAAAAAP4A
类似这里就有6行。如果是大事务,每次解析76字节,add_line 函数。然后等待大事务所有行解析完成后进行com_do函数进行执行命令。
如果是sql语句,那么就是一条sql执行一次没有什么问题。
最近遇到mysqlbinlog|mysql大事务特别慢的情况,因此提交了如下问题BUGS#101900,8.0.13修复了,5.7不知道:
Hi:
we use mysqlbinlog|mysql to parse binlog and recover binlog,when have large trasaction,mysql client tool
is very slow at add_line function.
20M trasaction event mysql add line use 1 hour!! cpu is 100% use in sy% and pstack mysql client stack like:
__memmove_sse3
my_realloc
String::mem_realloc
add_line
read_and_execute
main
when batch mode,mysql every time add 76 bytes event line to buffer,buffer init 520 bytes,when 20M event load in
buffer then call com_do funcation to execute command。
Breakpoint 9, add_line (buffer=..., line=0xa603e0 "/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;", line_length=45, in_string=0x7fffffffe287 "", ml_comment=0x7fffffffe286, truncated=false)
at /opt/percona-server-locks-detail-5.7.22/client/mysql.cc:2533
2533 bool need_space= 0;
(gdb) p buffer.m_length
$20 = 0
(gdb) p buffer.m_alloced_length
$21 = 520
when buffer is smaller, every time allocate 4K mem:
if (buffer.length() + length >= buffer.alloced_length())
buffer.mem_realloc(buffer.length()+length+IO_SIZE);
this step rise frequently mem allocate.and cpu sy% is very high!!
when mysql use batch mode can we use large init buffer or give our a parameter to control this.
when i search bug i find Bug #85155 is like this,is this fix at mysql 8.0.13,what 5.7 version fix this?
thanks!!
我进行了一下修改,如下:
mysql.cc main函数下
MAX_BATCH_BUFFER_SIZE 已经定义好为1G
glob_buffer.mem_realloc(MAX_BATCH_BUFFER_SIZE);
[root@mgr3 client]# /opt/my_mysql/bin/mysqlbinlog /opt/bin/log_bin.000002 |/opt/my_mysql/bin/mysql
速度极快了
[root@mgr3 client]# /opt/my_mysql/bin/mysqlbinlog /opt/bin/log_bin.000002 |/opt/my_mysql/bin/mysqlbak
CPU 99%
位于192.168.1.63 上的/opt/my_mysql/bin/mysqlbak目录下,如果再次遇到这种问题,可以使用修改过的进行执行。
mysql客户端重庆_MySQL:MySQL工具以及5.7mysqlbinlog|mysql速度极慢问题相关推荐
- mysql客户端查询_MySQL数据库之利用mysql客户端查询UCSC数据库
本文主要向大家介绍了MySQL数据库之利用mysql客户端查询UCSC数据库 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. UCSC Genome Browser是由Unive ...
- mysql客户端指令_mysql command line client(mysql命令行客户端)
mysql command line client(mysql命令行客户端) (2010-03-24 09:18:38) 标签: 文化 分类: 数据库 1.输入密码:****** 2.ues mysq ...
- mysql 客户端乱码_Mysql客户端中文乱码问题解决
用Mysql客户端查询发现乱码: mysql> select *from user;+----+------------+----------+------------+-----------+ ...
- mysql 流复制_MySQL系列详解六:MySQL主从复制/半同步演示-技术流ken
前言 随着技术的发展,在实际的生产环境中,由单台MySQL数据库服务器不能满足实际的需求.此时数据库集群就很好的解决了这个问题了.采用MySQL分布式集群,能够搭建一个高并发.负载均衡的集群服务器.在 ...
- mysql ibdata1 损坏_mysql innodb文件ibdata1损坏导致mysql无法启动
问题描述 1 mysql数据库5.6无法正常启动 2 直接复制替换innodb的frm和idb文件来新增数据表导致的问题 3 innodb文件ibdata1,ib_logfile0,ib_logfil ...
- sae mysql 同步本地_MYSQL入门之三_将本地MySQL数据导入SAE数据库_MySQL
bitsCN.com MYSQL入门之三_将本地MySQL数据导入SAE数据库 1. MySQL字符集 MySQL的默认字符集是latin1,将本地MySQL库导出成sql,再导入到SAE的MySQL ...
- mysql字段替换_mysql 替换字段部分内容及mysql 替换函数replace()
[mysql]replace的用法(替换某字段部分内容) [mysql]replace的用法 1.replace into replace into table (id,name) values('1 ...
- navicat mysql本地连接_MySQL | 使用 Navicat 新建本地连接 mysql 出现的问题
问题一: Navicat 新建连接报错:2003-can't connect to MySQL server on 'localhost'(10061) 解决方法: 1.首先查看数据库是否启动 打开 ...
- sql与mysql的区别_MySQL和SQL是什么?MySQL和SQL之间的区别有哪些
MySQL和SQL之间的区别有哪些?很多PHP的初学者,对MySQL,MyAdmin和SQL有什么区别并不是很清楚?下面php中文网就带领大家来学习一下MySQL和SQL之间的区别.[推荐阅读:MyS ...
最新文章
- mysql reverse 索引_降序索引和减轻索引扫描
- Linux page allocation failure 的问题处理 - zone_reclaim_mode
- “实模式--保护模式--实模式”转换过程
- Vue.use()是什么?
- js正则表达exec和match的区别(转)
- 服务器USB启动故障一例
- Python学习笔记-猜数字游戏(学习语法)
- mongodb ensureIndex parameter
- Flink之Redis的安装及RedisSink的用法
- shedlock源码解析
- obs源码分析【二】:录制功能剖析
- 微信红包软件可测试,微信抢红包神器测试g2020
- 请完成设计配置计算机,平面设计师的电脑配置有什么要求?
- Leetcode 684. 冗余连接(dsu,氵)
- 两步解决WIN7 下IE经常未响应的假死现象
- linux head
- Java一般要学多久?
- 01背包问题——大背包:
- CSS3画三角形、菱形、平行四边形
- idea高版本设置注入飘红(红色波浪线)
热门文章
- [jQuery] Cannot read property ‘msie’ of undefined错误的解决方法
- android发布新版忘记keystore(jks)密码终极解决方案
- java学习之自定义异常
- 什么是复制和交换习语?
- 老电脑应该怎么重装系统比较好
- ros中web端通过 按钮加载本地静态 pgm 地图显示在canvas画布中
- python pip升级报错
- 不做etl sql 怎么直接取_我们可以不再使用ETL了吗?
- obs多推流地址_什么都比不上动手能力,OBS 推流实践小记
- JQ实现全选、全不选、反选、偶数选中、奇数选中