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死锁和分库分表问题详解)
- 所有聚合函数mysql教程(Mysql 聚合函数嵌套使用操作)
- mysql按端口查找配置(MySQL中给定父行找到所有子行的解决方案)
- mysql 排序源码(MySQL排序原理和案例详析)
- mysql日期与时间函数(MySQL日期函数与时间函数汇总MySQL 5.X)
- mysql模糊查询语句(mysql中like % %模糊查询的实现)
- mysql允许远程访问docker(Docker部署mysql远程连接 解决2003的问题)
- idea向数据库中插入中文报错(Idea连接MySQL数据库出现中文乱码的问题)
- php连接mysql需要数据源吗(php连接mysql数据库最简单的实现方法)
- django连接mysql不支持中文插入(Django创建项目+连通mysql的操作方法)
- mysql慢日志查询会输出插入语句吗(MySQL三种日志有啥用?如何提高MySQL并发度?)
- mysql 索引使用总结(MySQL复合索引的深入探究)
- mysql 高级用法(MySQL实现replace函数的几种实用场景)
- 如何排查mysql存储过程的问题(Mysql修改存储过程相关权限问题)
- mysql 索引怎么实现(Mysql中索引和约束的示例语句)
- 用mysql编写test数据库(MySQL制作具有千万条测试数据的测试库的方法)
- 春天养佛肚竹,做好这几件事,叶绿根壮寓意好 越养越旺家(春天养佛肚竹做好这几件事)
- 律界衣品最好,时尚圈学识数高,41岁的Amal堪称现实版的傲骨贤妻(时尚圈学识数高)
- 刘智泰确认出演《Good Wife》 担纲男一号(刘智泰确认出演Good)
- 《傲骨之战》剧终 律政女魔头Diane,为什么是大女主天花板(傲骨之战剧终律政女魔头Diane)
- 汉族(汉族的祖先是谁)
- 中国有几个名族(中国有几个民族没列入56个民族)
热门推荐
- php解压压缩包(PHP 实现文件压缩解压操作的方法)
- html5实现上传图片预览
- linux本地文件夹双向同步(linux两台服务器实现自动同步文件)
- sql语句去除重复记录(使用SQL语句去掉重复的记录两种方法)
- phpstorm代码模板(phpStorm+XDebug+chrome 配置详解)
- 如何设置虚拟主机(虚拟主机空间怎么选择?)
- pythonmysql使用教程(Python异步操作MySQL示例使用aiomysql)
- sql语句的groupby是做什么的(深入浅析SQL中的group by 和 having 用法)
- discuz apache伪静态(apache中伪静态配置和使用Apache虚拟主机下Discuz伪静态)
- python 操作html(Python HTML解析模块HTMLParser用法分析爬虫工具)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9