mysql数据库加载太慢_mysql千万级数据库插入速度和读取速度的调整记录
一般情况下mysql上百万数据读取和插入更新是没什么问题了,但到了上千万级就会出现很慢,下面我们来看mysql千万级数据库插入速度和读取速度的调整记录吧。
(1)提高数据库插入性能中心思想:尽量将数据一次性写入到Data File和减少数据库的checkpoint 操作。这次修改了下面四个配置项:
1)将 innodb_flush_log_at_trx_commit 配置设定为0;按过往经验设定为0,插入速度会有很大提高。
0: Write the log buffer to the log file and flush the log file every second, but do nothing at transaction commit.
1: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
2:the log buffer is written out to the file at each commit, but the flush to disk operation is not performed on it
2)将 innodb_autoextend_increment 配置由于默认8M 调整到 128M
此配置项作用主要是当tablespace 空间已经满了后,需要MySQL系统需要自动扩展多少空间,每次tablespace 扩展都会让各个SQL 处于等待状态。增加自动扩展Size可以减少tablespace自动扩展次数。
3)将 innodb_log_buffer_size 配置由于默认1M 调整到 16M
此配置项作用设定innodb 数据库引擎写日志缓存区;将此缓存段增大可以减少数据库写数据文件次数。
4)将 innodb_log_file_size 配置由于默认 8M 调整到 128M
此配置项作用设定innodb 数据库引擎UNDO日志的大小;从而减少数据库checkpoint操作。
经过以上调整,系统插入速度由于原来10分钟几万条提升至1秒1W左右;注:以上参数调整,需要根据不同机器来进行实际调整。特别是 innodb_flush_log_at_trx_commit、innodb_log_buffer_size和 innodb_log_file_size 需要谨慎调整;因为涉及MySQL本身的容灾处理。
(2)提升数据库读取速度,重数据库层面上读取速度提升主要由于几点:简化SQL、加索引和分区; 经过检查程序SQL已经是最简单,查询条件上已经增加索引。我们只能用武器:表分区。
-----------------------------------mysql提高insert into 插入速度的3种方法---------------------------------------
当mysql大批量插入数据的时候就会变的非常慢, mysql提高insert into 插入速度的方法有三种:
第一种插入提速方法:
如果数据库中的数据已经很多(几百万条), 那么可以 加大mysql配置中的 bulk_insert_buffer_size,这个参数默认为8M
bulk_insert_buffer_size=100M
第二种mysql插入提速方法:
改写所有 insert into 语句为 insert delayed into
这个insert delayed不同之处在于:立即返回结果,后台进行处理插入。
第三个方法: 一次插入多条数据:
insert中插入多条数据,举例:
insert into table values('11','11'),('22','22'),('33','33')...;
mysql提高insert into 插入速度的3种方法
mysql数据库加载太慢_mysql千万级数据库插入速度和读取速度的调整记录相关推荐
- mysql怎么加载bak文件_MySQL数据库(表)的导入导出(备份和还原)
一)在同一个数据库服务器上面进行数据表间的数据导入导出: 1. 如果表tb1和tb2的结构是完全一样的,则使用以下的命令就可以将表tb1中的数据导入到表tb2中: insert into db2.tb ...
- mysql数据库加载太慢_使用MySQL数据库很慢
对于2000数据库,您应该调整table cache设置.您肯定在此缓存中有很多缓存未命中. 尝试使用mysqltunner和/或tunning_primer.sh获取有关设置潜在问题的其他信息. 现 ...
- 你所不知道的SQL Server数据库启动过程(用户数据库加载过程的疑难杂症)
转http://www.cnblogs.com/zhijianliutang/p/4100103.html 前言 本篇主要是上一篇文章的补充篇,上一篇我们介绍了SQL Server服务启动过程所遇到的 ...
- Spark-SQL从MySQL中加载数据以及将数据写入到mysql中(Spark Shell方式,Spark SQL程序)
1. JDBC Spark SQL可以通过JDBC从关系型数据库中读取数据的方式创建DataFrame,通过对DataFrame一系列的计算后,还可以将数据再写回关系型数据库中. 1.1. 从MySQ ...
- Spring 3.1 –从数据库加载XML配置的属性
Spring使通过其PropertyPlaceholderConfigurer和(Spring 3.1之前)PropertySourcesPlaceholderConfigurer(Spring 3. ...
- spark mysql 写_Spark-SQL从MySQL中加载数据以及将数据写入到mysql中(Spark Shell方式,Spark SQL程序)...
1. JDBC Spark SQL可以通过JDBC从关系型数据库中读取数据的方式创建DataFrame,通过对DataFrame一系列的计算后,还可以将数据再写回关系型数据库中. 1.1. 从MySQ ...
- Paging3、Room使用,1、从本地Room数据库加载 2、直接网络获取数据加载 3、网络访问数据到Room数据库再加载 4、封装使用
目录 1.从本地Room数据库加载数据 viewmodel fragment中使用 页面 数据库相关 2.直接网络获取数据加载 3.网络访问数据到Room数据库再加载数据 自定义RemoteMedia ...
- Asp .NetCore 从数据库加载配置(一)
一般来说,Asp .NetCore 应用从官方默认的appsetting.json文件中读取就好,而且利用option模式中的 IOptionsSnapSot<T>.IOptionsMon ...
- 如何实现mysql千万级数据库插入速度和读取速度
mysql千万级数据库插入速度和读取速度的调整记录 2018.11.1 Mysql version 5.7.23 一般情况下mysql上百万数据读取和插入更新是没什么问题了,但到了上千万级就会出现很慢 ...
最新文章
- 关于三岔路口双车接力,这位同学把问题总算问清楚了
- Entity Framework 无法对没有主键的视图映射实体的解决办法
- AngularJs快速上手掌握
- win8硬盘安装Ubuntu14.04双系统參考教程
- 李国庆离开当当,广东消委会告长隆,智能校服提供定位功能,全球首个5G火车站来了,这就是今天的大新闻...
- centos查看网络速率_CentOS 7查看网络带宽使用情况
- 解析xml文件的几种技术
- Android Support Library 23.2更新啦
- NumberFormat和DecimalFormat
- vscode下载太慢,修改下载地址提速
- CS224N WINTER 2022(三)RNN、语言模型、梯度消失与梯度爆炸(附Assignment3答案)
- border属性的三要素
- 【动态规划】2只鸡蛋与100层塔问题(有详细说明和思路代码)
- python基础--截图提取图中文字存入Excel表
- bios+mbr方式以及gpt+uefi方式安装win10和ubuntu18.10
- python 做网站的工具_python能做网站
- [二分图最大独立集] bzoj4808 马
- Python mac运行pygame一片空白不显示内容-解决方案
- CEGUI 动画系统
- 自动化提取书生(sep,gd等)文档内容,更新到hive
热门文章
- 【控制】《多智能体机器人系统信息融合与协调》范波老师-第6章-基于分布式强化学习的多 Agent 协调方法
- 【控制】传递函数的性质
- 【Android工具】更新解放双眼听书软件,搜书神器
- Vivado联合ModelSim仿真设置(附图步骤)
- linux下tty, ttyn, pts, pty, ttySn, console理解
- Servlet重定向的过程(二)
- ifconfig,netstat 命令找不到解決办法
- 就是好骑!骑ofo小黄蜂和舒畅早晨say hi,跟闹心堵车say bye
- String是一个很普通的类 - Java那些事儿
- 长亭技术专栏 安全攻防技术分享