MySQL insert 插入优化技巧,MySQL 优化学习第8天_insert 关闭索引-程序员宅基地

技术标签: python  数据库优化指南  精彩技术文  mysql  插入优化insert  数据库优化  数据库插入优化  

本篇博客主要优化 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 篇原创博客。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/hihell/article/details/122650951

智能推荐

截流式合流制设计流量计算_2016合流制排水管设计与计算.ppt-程序员宅基地

文章浏览阅读385次。2016合流制排水管设计与计算第4章 合流制管渠系统的设计 第4章 合流制管渠系统的设计 合流制排水系统: 在同一系统内收集排除污水和雨水。 4.1 合流制管渠系统的使用条件和布置特点 1. 完全合流制-直排式合流制 设计流量: Qz = Qs + Qg + Qy = Qh + Qy (L/s) 式中 , Qz ——完全合流制设计流量; Qs ——设计生活污水量; ...

Gradle配置:Android Library打包至Maven仓库-程序员宅基地

文章浏览阅读7.4k次。开发Android Library项目,需要把aar包给商户app接入,如果按照原始的方法手动给包的话,那就太low了。而且Library中dependencies和proguard等都要商户app再写一遍,这实在是和low,对于商户来说,其实只要一句简单的代码就好了。compile 'xxx.xx.xx:xxx:3.x'本文章演示如何通过在build.gradle中配置,达到自动上传library

爬虫笔记17:随机UserAgent的生成、phantomjs 快速入门、用requests与正则表达式爬取百度贴吧图片、安装selenium、chromedriver快速入门_百度贴吧图片正则表达式-程序员宅基地

文章浏览阅读321次。一、随机UserAgent的生成1、安装:pip install fake_useragent2、代码:from fake_useragent import UserAgentua = UserAgent()#谷歌浏览器print(ua.chrome) #firefox 火狐浏览器结果:二、phantomjs 快速入门1、驱动配置:上图红框处的意思是:没有配置之前需要添加驱动的路径,也就是phantomjs.exe所在位置。解决方法1:将驱动文件_百度贴吧图片正则表达式

javaScript表单验证_"javascript forms[\"myform\"][\"fname\"]"-程序员宅基地

文章浏览阅读181次。1.javaScript表单验证以下实例代码用于判断表单字段(fname)值是否存在,如果不存在,就弹出信息,阻止表单提交;//javascriptfunction validateForm(){ var x=document.forms["myForm"]["fname"].value; if(x==null||x==" "){ alert("需要输入名字"); return false; //阻止表单提交 }}//HTML表单实例<form name="myForm" _"javascript forms[\"myform\"][\"fname\"]"

Redux配合路由使用(一)——路由基本配置-Switch标签和和Redirect标签-路由重定向 & exact-路由精确匹配 & 根据路由参数进行列表筛选_browserrouter redirect-程序员宅基地

文章浏览阅读297次。Redux配合路由使用——路由基本配置-Switch标签和和Redirect标签-路由重定向 & exact-路由精确匹配 & 根据路由参数进行列表筛选路由基本配置安装路由组件yarn add react-router-dom使用Provider包裹Routersrc/App.jsimport { BrowserRouter, Route, Switch, Redirect } from 'react-router-dom'<Provider store={s_browserrouter redirect

(四)Kinect人脸识别-程序员宅基地

文章浏览阅读315次。kinect可以通过摄动摄像头不仅可以获取人脸位置旋转信息,也可以获取脸部轮廓的三维坐标可以参考插件中的场景KinectFaceTrackingDemo1-4,在kinectManager基础上需要脚本FacetrackingManager。1)通过KinectManager kinectManager = KinectManager.Instance;获取到Kinect运行实例2)通..._kinectmanger 识别人

随便推点

python argparse 模块_def parse_argument(args=none): parser = argparse.a-程序员宅基地

文章浏览阅读245次。python argparse 模块利用argparse 传递参数import argparsedef parse_args(): parser = argparse.ArgumentParser(description = 'learn parse make firstly') # 参数描述 parser.add_argument('--gpu',dest = 'g..._def parse_argument(args=none): parser = argparse.argumentparser(description=

vue项目因为eslint报错的原因及解决办法_expected indentation of 2 spaces but found 3-程序员宅基地

文章浏览阅读5.8k次。一、报错:error Expected indentation of 2 spaces but found 3 indent原因:像这种就是多或者少空格导致的,想上面一个就是多了一个空格。解决:将多余(缺少)的空格删除(补全)即可注意事项:如果使用过代码格式化工具,可能会很难调整对象中的参数,可以先将其禁用。二、报错:Newline required at end of file but not found eol-last原因:eslint需要文件最后有一个空号,而你没有解决:在对应文件末_expected indentation of 2 spaces but found 3

为什么jupyterlab运行程序的时候会自动停止_Jupyterlab:超强的下一代Jupyter Notebook-程序员宅基地

文章浏览阅读318次。文 | Parul Pandey 译 | EarlGrey数据显示,Github上有超过300万个 Jupyter Notebook 可供公开使用。私有的 Notebook 数量也大致相同。即使没有这些数据佐证,我们也非常清楚Jupyter Notebook在数据科学领域的普及程度。编写代码,检查结果,获得丰富输出的可能性,是真正使 Jupyter Notebook 受欢迎的一些功能。但据说所有好..._jupyter lab stop all

点云可视化PCLVisualizer类_pcl 可视化demo-程序员宅基地

文章浏览阅读202次。编译后生成可执行文件:pcl_visualizer_demo。修改Cmakelists.txt文件,加入链接库。_pcl 可视化demo

OSChina 周六乱弹 ——世上无难事,只要肯放弃!-程序员宅基地

文章浏览阅读172次。2019独角兽企业重金招聘Python工程师标准>>> ...

如何用IAR for msp430烧写代码到msp430F5529-程序员宅基地

文章浏览阅读1w次,点赞36次,收藏156次。1下载IAR,安装破解,选择msp430版本。2.1打开IAR新建工作区,点击File菜单下的New Workspace2.2新建工程,点击Projec菜单下的Create New Project,2.3在弹出的对话框中Tool chain选择msp430(一般为默认),选择C文件夹的main,点击ok。2.4保存工程文件夹,自己命名,这样一个工程就创建完了。2.5保存工作区,F...

推荐文章

热门文章

相关标签