mysql commit慢_mysql autocommit问题导致的gtid同步变慢
这几天在研究mysql数据同步,查看一些资料发现5.7版本可以使用gtid来实现主备数据库的数据同步。
经过一些折腾,搭建完毕,在master上建库、建表、插入数据,在从库上都能看到。看来一切正常。
随着测试的深入发现了一些问题,通过一个存储过程批量往表里插入10000条数据,发现速度慢的离奇。
如果不开启gtid只是单个数据库的话速度很快。
存储过程如下:
DELIMITER ;;
create procedure vip5()
begin
declare i int default 0;
while i < 100000
do
insert into a values(1,2);
set i = i + 1;
end while;
end;;
后来发现原来是autocommit(自动提交,把数据从内存写入磁盘)搞得鬼,在执行存储过程前先执行set autocommit=0,问题解决。
my.cnf配置如下:
master:
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
gtid-mode = on
enforce-gtid-consistency = 1
log-bin = /var/lib/mysql/mysql-bin-gtid
server-id = 3306100
binlog_format = row
skip_slave_start = 1
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
sync_binlog = 1
#-------------------gobal variables------------#
max_connect_errors = 100000
max_connections = 10000
wait_timeout = 3600
interactive_timeout = 3600
net_read_timeout = 3600
net_write_timeout = 3600
table_open_cache = 2000
table_definition_cache = 2000
open_files_limit = 20000
thread_cache_size = 512
#thread_handling = pool-of-threads
#thread_pool_max_threads = 5000
#thread_pool_size = 8
character-set-server = utf8
collation-server = utf8_general_ci
skip_external_locking
performance_schema = 1
myisam_recover_options = DEFAULT
skip-name-resolve
local_infile = 0
lower_case_table_names = 0
key_buffer_size = 384M
max_allowed_packet = 128M
master_info_repository = table
relay_log_info_repository = table
#--------------------innoDB------------#
innodb_buffer_pool_size = 1G
#innodb_data_file_path = ibdata1:200M:autoextend
innodb_flush_log_at_trx_commit = 0
innodb_io_capacity = 3000
innodb_lock_wait_timeout = 30
innodb_log_buffer_size = 8M
innodb_log_file_size = 200M
innodb_log_files_in_group = 3
innodb_max_dirty_pages_pct = 85
innodb_read_io_threads = 8
innodb_write_io_threads = 8
innodb_support_xa = 1
innodb_thread_concurrency = 8
innodb_file_per_table
innodb_rollback_on_timeout
#------------session variables-------#
join_buffer_size = 8M
bulk_insert_buffer_size = 32M
max_heap_table_size = 96M
tmp_table_size = 96M
read_buffer_size = 16M
sort_buffer_size = 4M
read_rnd_buffer_size = 32M
expire_logs_days = 15
max_binlog_size = 200M
binlog_cache_size = 64k
log_warnings = 1
long_query_time = 0.125
##log_timestamps=SYSTEM
#---------------replicate--------------#
#slave-parallel-threads = 4
slave_parallel_workers=4
#slave_parallel_type='logical_clock'
replicate-ignore-db = mysql_identity
init_slave = 'set sql_mode=STRICT_ALL_TABLES'
log-slave-updates = 1
slave:
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
gtid-mode = on
enforce-gtid-consistency = 1
log-bin = /var/lib/mysql/mysql-bin-gtid
server-id = 3306101
binlog_format = row
skip_slave_start = 1
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
sync_binlog = 1
#-------------------gobal variables------------#
max_connect_errors = 100000
max_connections = 10000
wait_timeout = 3600
interactive_timeout = 3600
net_read_timeout = 3600
net_write_timeout = 3600
table_open_cache = 2000
table_definition_cache = 2000
open_files_limit = 20000
thread_cache_size = 512
#thread_handling = pool-of-threads
#thread_pool_max_threads = 5000
#thread_pool_size = 8
character-set-server = utf8
collation-server = utf8_general_ci
skip_external_locking
performance_schema = 1
myisam_recover_options = DEFAULT
skip-name-resolve
local_infile = 0
lower_case_table_names = 0
key_buffer_size = 384M
max_allowed_packet = 128M
master_info_repository = table
relay_log_info_repository = table
#--------------------innoDB------------#
innodb_buffer_pool_size = 1G
#innodb_data_file_path = ibdata1:200M:autoextend
innodb_flush_log_at_trx_commit = 0
innodb_io_capacity = 3000
innodb_lock_wait_timeout = 30
innodb_log_buffer_size = 8M
innodb_log_file_size = 200M
innodb_log_files_in_group = 3
innodb_max_dirty_pages_pct = 85
innodb_read_io_threads = 8
innodb_write_io_threads = 8
innodb_support_xa = 1
innodb_thread_concurrency = 8
innodb_file_per_table
innodb_rollback_on_timeout
#------------session variables-------#
join_buffer_size = 8M
bulk_insert_buffer_size = 32M
max_heap_table_size = 96M
tmp_table_size = 96M
read_buffer_size = 16M
sort_buffer_size = 4M
read_rnd_buffer_size = 32M
expire_logs_days = 15
max_binlog_size = 200M
binlog_cache_size = 64k
log_warnings = 1
long_query_time = 0.125
##log_timestamps=SYSTEM
#---------------replicate--------------#
#slave-parallel-threads = 4
slave_parallel_workers=4
#slave_parallel_type='logical_clock'
replicate-ignore-db = mysql_identity
init_slave = 'set sql_mode=STRICT_ALL_TABLES'
log-slave-updates = 1
mysql commit慢_mysql autocommit问题导致的gtid同步变慢相关推荐
- mysql autocommit问题导致的gtid同步变慢
这几天在研究mysql数据同步,查看一些资料发现5.7版本可以使用gtid来实现主备数据库的数据同步. 经过一些折腾,搭建完毕,在master上建库.建表.插入数据,在从库上都能看到.看来一切正常. ...
- mysql ddl 锁_MySQL Online DDL导致全局锁表案例分析
MySQL Online DDL导致全局锁表案例分析 我这边遇到了什么问题? 线上给某个表执行新增索引SQL, 然后整个数据CPU打到100%, 连接数暴增到极限, 最后导致所有访问数据库的应用都奔溃 ...
- mysql 表死锁_MySQL Innodb表导致死锁日志情况分析与归纳
案例描述在定时脚本运行过程中,发现当备份表格的sql语句与删除该表部分数据的sql语句同时运行时,mysql会检测出死锁,并打印出日志. 两个sql语句如下:(1)insert into backup ...
- mysql 字符集 性能_MySQL字符集不一致导致性能下降25%,你敢信?
故事是这样的: 我在对MySQL进行性能测试时,发现CPU使用率接近100%,其中80%us, 16%sys,3%wa,iostat发现磁盘iops2000以下,avgqu-sz不超过3,%util最 ...
- mysql编码不对_MySQL编码不一致导致乱码问题总结
使用MySQL常常会出现乱码问题,一般情况下都是因为编码不一致造成,以下提供了MySQL数据编码相关的一些信息,希望会有所帮助. 一.MySQL的编码机制: 1.数据库级别的编码:数据库服务器上允许建 ...
- mysql update commit吗_MySQL需要commit么
mysql在进行如插入(insert)操作的时候需不需要commit,这得看你的存储引擎,如果是不支持事务的引擎,如myisam,则是否commit都没有效的. 推荐课程:MySQL教程. 如果是支持 ...
- mysql 回退查询_MYSQL数据库表排序规则不一致导致联表查询,索引不起作用问题...
Mysql数据库表排序规则不一致导致联表查询,索引不起作用问题 表更描述: 将mysql数据库中的worktask表添加ishaspic字段. 具体操作:(1)数据库worktask表新添是否有图片字 ...
- mysql 双引号报错_MySQL 双引号导致ERROR 1054 (42S22) at line 1: Unknown column
问题现象 发现监控进程获取MySQL数据的时候报错导致监控进程报错: mysql: [Warning] Using a password on the command line interface c ...
- mysql show 原理_mysql事务的实现原理
此篇文章算是对mysql事务的一个总结,基本把mysql事务相关的知识点都涵盖到了,面试问来问去无非也就是这些,在了解这些之前我们先对mysql在执行的过程中 有一个整体的认识,如下图 如上图所示, ...
最新文章
- IBM----Yacc 与 Lex 快速入门
- hyperopt中文文档:Recipes
- 实习总结之jquery实例
- 她不理我了,怎么办?
- unity声音组件AudioSource的使用
- 【JSON系列】JSON核心知识点总结
- Java开发环境!java工程师薪资行情
- libspark.swfassist的体会
- 【SDOI2008】【P1377】仪仗队
- 输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。
- 酷派D530刷机指引之民间ROM
- Daily errors about log encoding and web page garbled characters
- Android蓝牙源码分析——BTA层消息分发
- gnome 如何自定义样式_在Gnome 3中自定义字体
- git 不abandon的办法
- Log4Qt 日志格式化(TTCCLayout)
- latex在参考文献表中不输出网址和doi
- PPT批量替换字体、行间距操作
- 百度以外可用的离线下载空间
- 计算机视觉论文-2021-03-18
热门文章
- 呼和浩特机器人光缆设备_工业机器人最坚固配件,虐它千万次,性能依旧
- android注册弹窗,Android开发之PopupWindow创建弹窗、对话框的方法详解
- 和与余数的和同余理解_每日一题 | 第38期:数量关系之余数特性
- 焊缝标注vlx实用程序_焊缝标注实例(记住这七个技巧,受益无穷)
- JAVA写的爬虫小工具
- 免费开源、功能完善、暗黑风格,你会拒绝这款SSH工具吗?
- GitHub 大热!也许会成为你心中的OCR开源工具NO1!
- 淘宝面试:说一下 ThreadLocal 的原理?网友:现在面试不看源码不行啊~
- 皮一皮:我好像知道了什么...
- Spring Redis中使用Lua脚本实现高并发原子操作