首页 > 数据库 >Mysql批量插入数据时,多少条最好

Mysql批量插入数据时,多少条最好

时间:2023-02-07 16:12:33浏览次数:41  
标签:200 30 varchar 字节 批量 Mysql 插入 sql 1073MB

1.首先需要确认mysql服务器上的限制

sql大小的限制

>show variables like '%max_allowed_packet%%'
+--------------------------+------------+
| Variable_name            | Value      |
+--------------------------+------------+
max_allowed_packet	1073741824
slave_max_allowed_packet	1073741824

换算1073741824字节=1073MB

也就是说sql大小的限制是1073MB

2.获取批量插入时候单条数据的大小

根据表结构来定

CREATE TABLE `delta24_tempdata_merge` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `merge_type` varchar(30) NOT NULL DEFAULT '',
  `val` varchar(200) NOT NULL DEFAULT '',
  PRIMARY KEY (`id`),
  KEY `merge_type` (`merge_type`)
) ENGINE=InnoDB AUTO_INCREMENT=685347 DEFAULT CHARSET=utf8mb4;

varchar(200):代表200个字符,纯英文的话=200个字节,全中文的话=200+4=800字节
varchar(30):代表30个字符=30个字节
int(11):代表11字节
估算一行数据=200+30+11=240字节

3.估算极限情况

服务器端sql大小限制是1073MB
我们刚才计算出一行数据是240字节,1MB的数据量对应的话是(10241024)/240=4369条,防止溢出的话保守4000条数据
那么理论最大值=1000
4000=4百万条记录一次
这样一次发1G的sql文件过去,大概4百万条记录,mysql服务端的压力是非常大的

4.优化保守情况

为了防止内存溢出及不影响别的sql执行,建议取最大sql大小的一半作为最优批量计算条件
1073MB/2=500MB左右
1MB最多发1000条数据,那么500MB=500*4000=2百万条记录一次

标签:200,30,varchar,字节,批量,Mysql,插入,sql,1073MB
From: https://www.cnblogs.com/PythonOrg/p/17098814.html

相关文章

  • mysql与oracle语法区别
    1.MySQL的字符串类型是varchar:CODEVARCHAR(40),Oracle中是varchar2:CODEVARCHAR2(40)。2.MySQL的数值类型是decimal,FLOAT,DOUBLE,Oracle中是NUMBER。3.MySQL支持在建表时同时......
  • vue项目 前端js实现根据文件url批量压缩下载成zip包
    1.npminstalljszip--save/yarnaddjszip-S2.npminstallfile-saver--save/yarnaddfile-saver-S3.yarnaddaxios以下为完整代码 <template>......
  • 新手MysQl数据库
    大一下学期学校要学mysql,之前不懂这是什么,经过查询得知这是一种数据库。MySQL是一个​​关系型数据库管理系统​​,由瑞典​​MySQLAB​​​ 公司开发,属于 ​​Oracle​​......
  • MySQL配置参数
    配置参数解释:[client]#设置字符集default-character-set=utf8mb4#设置端口号port=3306#设置socket连接文件位置socket=/home/mysql/data/mysqldata1......
  • PHP和MySQL处理树状、分级、无限分类、分层数据的方法
    文章标题中的多个词语表达的其实是一个意思,就是递归分类数据,分级数据非常类似数据结构中的树状结构,即每个节点有自己的孩子节点,孩子结点本身也是父亲节点。这是一个递归、分......
  • MySQL8.0修改数据库名的方法
    注:1、不管存储引擎是InnoDB还是MyISAM直接去修改data下的文件夹名称都是不可行的;2、renamedatabaseoldnameTOnewname;也是不可行的;可采用如下方法:方法一整体思路:新......
  • MYSQL学习笔记
    一,SQL的分类数据查询语言(DQL---DataQueryLanguage) 代表关键字:select数据操纵语言(DML---DataManipulationLanguage)代表关键字:insert,delete,update数据定义......
  • MySQL 如何实现数据插入
    使用MySQL插入数据时,可以根据需求场景选择合适的插入语句,例如当数据重复时如何插入数据,如何从另一个表导入数据,如何批量插入数据等场景。本文通过给出每个使用场景下的实例......
  • Mysql数据表关系实战总结(一对一,一对多,多对多)
    引言在实际开发过程中,我们的数据表是几十个或上百个的,那么表与表之间的是如何关联的,下面分享一些项目经验 表关系一对一一对多多对多 1、一对一    ......
  • linux mysql安装顺序
    lib在这里插入代码片`mysqlclient20_5.7.13-1ubuntu16.04_i386.deblibmysqlclient-dev_5.7.13-1ubuntu16.04_i386.deblibmysqld-dev_5.7.13-1ubuntu16.04_i386.debmysql......