MySQL insert 插入优化技巧,MySQL 优化学习第8天
本篇博客主要优化 MySQL 中的插入操作,核心实现 insert 优化任务。
插入数据
** load data infile
导入数据**
使用上述命令,可以大幅度提高批量插入数据。
如果希望使用该命令,可以用 show
命令进行测试
show variables like '%infile%'
使用批量插入
如果希望一次性插入多条数据,可以使用一条 insert 语句,然后拼接多行数据。
insert into 表名 values(...),(...),(...)
禁用唯一检查
在插入数据时,可以临时取消唯一性校验,具体办法是在插入前执行下述命令
set unique_checks = 0
插入完毕之后在打开
set unique_checks = 1
禁用外键检查
与上述逻辑一致,相关命令如下所示。
set foreign_key_checks = 0
set foreign_key_checks = 1
禁止自动提交
禁止事务自动提交
set autocommit = 0
set autocommit = 1
禁用索引
临时性关闭索引
alter table 表名 disable keys
执行完毕打开索引
alter table 表名 enable keys
从配置的角度进行修改
bulk_insert_buffer_size
缓存大小,默认 8M,可以提高。
show variables like 'bulk_insert%'
这个参数只能对 MyISAM
使用, innodb
无效。
max_allowed_packet
接受的数据包大小,默认为 16M,可以提高。
show variables like 'max_all%'
net_buffer_length
通信时缓存数据的大小,最小4k,最大16M,默认是1M。
show variables like 'net_buffer_length'
其它可学习内容
尽量在事务中进行插入操作
MySQL 默认每次进行 insert
操作时,都会创建一个事务,所以我们提前将批量插入操作放置到事务中,可以提高效率。
START TRANSACTION;
insert into 表名 values(...),(...),(...);
insert into 表名 values(...),(...),(...);
insert into 表名 values(...),(...),(...);
COMMIT;
感兴趣的化 订阅一下 《Python爬虫120》 吧
橡皮擦的第 595 篇原创博客。
MySQL insert 插入优化技巧,MySQL 优化学习第8天相关推荐
- Mysql批量插入数据问题解决和优化
Mysql批量插入数据问题解决和优化 一.问题描述 项目中mysql批量插入大概50000左右数据,使用事务和批量,但是速度依旧很慢,大约60s左右,迫切希望改进这个问题. 二.问题原因 尽管是批量a ...
- MySQL INSERT插入条件判断:如果不存在则插入
我们经常需要进行sql的批量插入,要求:该条记录不存在则插入,存在则不插入.如果使用一条INSERT语句实现呢? 对于普通的 INSERT 插入,如果想要保证不插入重复记录,我们只有对某个字段创建唯一 ...
- c mysql 批量插入_c#之mysql四种带事务批量插入
前言 对于像我这样的业务程序员开发一些表单内容是家常便饭的事情,说道表单 我们都避免不了多行内容的提交,多行内容保存,自然要用到数据库,如果循环打扰我数据库,数据库也会觉得很累,从而增加数据库服务器压 ...
- mysql insert 字符集_有关 MySQL 字符集的注意事项-爱可生
本文关键字:字符集.建库建表 一.数据库和字符集 1. 建库时指定 创建数据库时,显式指定字符集和排序规则,同时,当切换到当前数据库后,参数 character_set_database,collat ...
- 【详解】模型优化技巧之优化器和学习率调整
目录 PyTorch十大优化器 1 torch.optim.SGD 2 torch.optim.ASGD 3 torch.optim.Rprop 4 torch.optim.Adagrad 5 tor ...
- mysql insert插入的3种方法
测试表student的字段 1.插入一条数据 INSERT INTO student(sid,sname,sage,ssex) VALUES(1,"wangdali",18,0); ...
- Python连接MySQL insert插入语句
连接数据库 import pymysqlconn = pymysql.Connect(host='127.0.0.1', port=3306,user='root',password='123456' ...
- mysql数据库插入datetime_往MySQL数据库datetime类型字段中插入数据库的当前时间
代码: StringBuilder sb = new StringBuilder(); sb.append(" insert into uosdetailfile ("); sb. ...
- mysql源生插入数据_php+mysql源生连接数据库和增删改查数据
php+mysql源生连接数据库和增删改查数据 新建一个init.php文件,执行链接数据库.内容如下 header("Content-type: text/html; charset=ut ...
最新文章
- RBL, UBL, Uboot的关系
- 在 Mac 安装Docker
- 北京内推 | ​百度自然语言处理部内容理解方向招收NLP算法实习生
- 统计学习方法第四章课后习题(转载+重新排版+自己解读)
- 芯片工程师成长之路_实施工程师的成长之路 | 来自咸职厚溥17级学姐的分享
- Android 开发之ViewPage官方文档学习笔记
- 【Google】谷歌搜索高级用法:包括指定文件类型
- App Store榜单优化:App出海必须掌握的ASO技巧
- 个人网页制作(教你制作简单网页)
- iOS Bilibili/ijkplayer 集成与使用
- 一战封神快速升级攻略
- iPhone 录音如何去除背景杂音增强录音品质
- Pycharm使用tkinter
- 全球教育ERP系统软件行业调研及趋势分析报告
- Lua 闭包实现pairs和ipairs
- pyflink执行任务问题总结
- 百度App iOS工程化实践: EasyBox破冰之旅
- LV.5 进程、线程和进程间通信
- pycharm中python代码格式化方法
- 人人车CEO李健发布内部信 称合伙人总数突破千人