mysql大量数据怎么处理(MySQL删除和插入数据很慢的问题解决)
mysql大量数据怎么处理
MySQL删除和插入数据很慢的问题解决公司开发人员在测试环境中执行一条 insert 语句时,需要花费 10 几秒才可以执行成功。查看测试环境数据库性能、数据量、死锁等信息,均为发现异常。最后通过修改日志写入方式解决此问题。
1. 修改办法
修改/etc/my.cnf文件,将 innodb_flush_log_at_trx_commit = 1改为0, 但这样就要承担数据库Crash后,1秒内未存储到数据库数据丢失可能的风险。MySQL文档中对该参数的描述如下:
If the value of innodb_flush_log_at_trx_commit is 0, the log buffer is written out to the log file once per second and the flush to disk operation is performed on the log file, but nothing is done at a transaction commit. When the value is 1 (the default), the log buffer is written out to the log file at each transaction commit and the flush to disk operation is performed on the log file. When the value is 2, the log buffer is written out to the file at each commit, but the flush to disk operation is not performed on it. However, the flushing on the log file takes place once per second also when the value is 2. Note that the once-per-second flushing is not 100% guaranteed to happen every second, due to process scheduling issues.
2. 参数说明
- 0:log buffer将每秒一次地写入log file中,并且log file的flush(刷到磁盘)操作同时进行。该模式下在事务提交的时候,不会主动触发写入磁盘的操作
- 1:每次事务提交时MySQL都会把log buffer的数据写入log file,并且flush(刷到磁盘)中去,该模式为系统默认
- 2:每次事务提交时MySQL都会把log buffer的数据写入log file,但是flush(刷到磁盘)操作并不会同时进行。该模式下,MySQL会每秒执行一次 flush(刷到磁盘)操作
3. 注意事项
当设置为0时,该模式速度最快,但不太安全,mysqld进程的崩溃会导致上一秒钟所有事务数据的丢失。
当设置为1时,该模式是最安全的,但也是最慢的一种方式。在mysqld 服务崩溃或者服务器主机crash的情况下,binary log 只有可能丢失最多一个语句或者一个事务。
当设置为2时,该模式速度较快,也比0安全,只有在操作系统崩溃或者系统断电的情况下,上一秒钟所有事务数据才可能丢失。
innodb_flush_log_at_trx_commit和sync_binlog 两个参数是控制MySQL 磁盘写入策略以及数据安全性的关键参数,当两个参数都设置为1的时候写入性能最差,推荐做法是innodb_flush_log_at_trx_commit=2,sync_binlog=500 或1000。
到此这篇关于MySQL删除和插入数据很慢的问题解决的文章就介绍到这了,更多相关MySQL删除和插入数据很慢内容请搜索开心学习网以前的文章或继续浏览下面的相关文章希望大家以后多多支持开心学习网!
原文链接:https://blog.csdn.net/xzk9381/article/details/114872585
- mysql新增字段语句(关于Mysql update修改多个字段and的语法问题详析)
- mysql统计下个月过生日的人数(Mysql出生日期转换为年龄并分组统计人数的方法示例)
- mysql5.7.20非安装版教程(MySQL5.5 部署的一个问题)
- navicatformysql使用视图(Navicat for MySQL的使用教程详解)
- mysql5.5.36版本介绍(WDCP控制面板升级mysql为5.7.11的方法)
- 使用mysqldump命令来备份(linux使用mysqldump+expect+crontab实现mysql周期冷备份思路详解)
- navicat15激活页面不显示(Navicat for MySQL 15注册激活详细教程)
- 所有聚合函数mysql教程(Mysql 聚合函数嵌套使用操作)
- mysql查询逗号分割字符串(MySQL 字符串拆分实例无分隔符的字符串截取)
- mysql死锁情况(MySQL kill不掉线程的原因)
- mysql order by id查询变慢(MySQL不使用order by实现排名的三种思路总结)
- mysql触发器语法规则(MySQL 触发器的使用及需要注意的地方)
- mysql数据库如何删除重复记录(mysql数据库删除重复数据只保留一条方法实例)
- druid数据库连接池原理详解(阿里巴巴Druid,轻松实现MySQL数据库加密!)
- mysql的7种索引(浅入浅出 MySQL 索引)
- centos7怎么安装mysql(Centos7 mysql数据库安装及配置实现教程)
- 岳云鹏不说相声,改行演员了 网友 快回来说相声(岳云鹏不说相声)
- 乔欣首演古装大女主,颜值演技双在线(乔欣首演古装大女主)
- 于正又推女性古装大剧 杨蓉乔欣演女配,两位女主成 重头戏(于正又推女性古装大剧)
- 乔欣古装女主戏获热度 作为女主,却没吃到红利(乔欣古装女主戏获热度)
- 爱情是什么(爱情是什么最经典的话)
- 乔欣 古装剧中的高颜值(古装剧中的高颜值)
热门推荐
- mysql死锁情况(MySQL kill不掉线程的原因)
- CSS块级元素和行内元素
- dockerregistry原理(解决Docker x509 insecure registry的问题)
- springboot docker教程(在Idea中使用Docker部署SpringBoot项目的详细步骤)
- html5隐藏数字(HTML5去掉输入框type为number时的上下箭头的实现方法)
- sqlserver实例全库备份(sql server通过脚本进行数据库压缩全备份的方法推荐)
- navicat配置远程访问mysql(解决Navicat无法连接 VMware中Centos系统中的 MySQL服务器的问题)
- C# Task实现多线程
- mysql三种查询方式(MySQL查询学习之基础查询操作)
- vue切换图片效果(Vue.js实现图片切换功能)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9