【第31天】SQL进阶-写优化- 插入优化(SQL 小虚竹)
回城传送–》《31天SQL筑基》
文章目录
- 零、前言
- 一、练习题目
- 二、SQL思路:SQL进阶-写优化-插入优化
- 解法
- 插入优化
- 禁用索引
- 语法如下
- 适用数据库引擎
- 非空表:禁用索引
- 禁用唯一性检查
- 语法如下
- 适用数据库引擎
- 禁用外键检查
- 语法如下
- 适用数据库引擎
- 批量插入数据
- 语法如下
- 适用数据库引擎
- 批量导入数据
- 语法如下
- 适用数据库引擎
- 禁用事务自动提交
- 语法如下
- 适用数据库引擎
- 三、总结
- 四、参考
零、前言
今天是学习 SQL 打卡的第 31 天,每天我会提供一篇文章供群成员阅读( 不需要订阅付钱 )。
希望大家先自己思考,如果实在没有想法,再看下面的解题思路,自己再实现一遍。在小虚竹JAVA社区 中对应的 【打卡贴】打卡,今天的任务就算完成了,养成每天学习打卡的好习惯。
虚竹哥会组织大家一起学习同一篇文章,所以有什么问题都可以在群里问,群里的小伙伴可以迅速地帮到你,一个人可以走得很快,一群人可以走得很远,有一起学习交流的战友,是多么幸运的事情。
我的学习策略很简单,题海策略+ 费曼学习法。如果能把这些题都认认真真自己实现一遍,那意味着 SQL 已经筑基成功了。后面的进阶学习,可以继续跟着我,一起走向架构师之路。
今天的学习内容是:SQL进阶-写优化- 插入优化
一、练习题目
题目链接 | 难度 |
---|---|
SQL进阶-写优化- 插入优化 | ★★★☆☆ |
二、SQL思路:SQL进阶-写优化-插入优化
解法
要求处理:
- 从四个选项中选择一个正确答案
插入优化
往表中插入数据时,会受索引,唯一性校验,外键检查和事务自动提交等原因会影响插入的效率。以下会分别介绍各种优化的方式。
禁用索引
在(非空表)插入大量数据时,可以先禁用索引,等数据插入完成,再启用索引。达到提高插入性能。
注:对于非空表插入记录时,MySQL会根据表的索引对插入记录建立索引。空表插入禁用是没有效果的
语法如下
#禁用索引
ALTER TABLE 表名 DISABLE KEYS;
#开启索引
ALTER TABLE 表名 ENABLE KEYS;
适用数据库引擎
MyISAM
非空表:禁用索引
–先清空student表数据
truncate student_my_isam ;
调用存储过程,先创建1万条数据。
CALL add_student_disable_index(10000) ;
禁用索引
ALTER TABLE student_my_isam DISABLE KEYS;
再调用存储过程,创建数据。
CALL add_student_disable_index(10000) ;
启用索引
ALTER TABLE student_my_isam ENABLE KEYS;
禁用唯一性检查
在插入大量数据时,可以先禁用唯一性检查,等数据插入完成,再启用唯一性检查。达到提高插入性能。
语法如下
#禁用唯一性检查
SET UNIQUE_CHECKS = 0;
#开启唯一性检查
SET UNIQUE_CHECKS = 1;
适用数据库引擎
MyISAM和InnoDB
禁用外键检查
在插入大量数据时,可以先禁用外键检查,等数据插入完成,再启用外键检查。达到提高插入性能。
语法如下
#禁用外键检查
SET foreign_key_checks = 0;
#开启外键检查
SET foreign_key_checks = 1;
适用数据库引擎
MyISAM和InnoDB
批量插入数据
向数据表中插入多条数据时,一次性插入多条比每次插入一条的性能要高出很多。
语法如下
INSERT INTO table_name (column1,column2,column3,…)
VALUES (value1,value2,value3,…),(value4,value5,value6,…);
适用数据库引擎
MyISAM和InnoDB
批量导入数据
使用LOAD DATA INFILE导入数据比用INSERT插入数据的性能高。
语法如下
LOAD DATA INFILE ‘data_file_path’ INTO TABLE table_name;
说明:
- data_file_path表示数据文件在服务器磁盘的绝对路径;
- table_name表示数据表的名称
在使用LOAD DATA INFILE语句向InnoDB数据表批量导入数据时,被导入的文件中的数据记录最好是按照主键顺序排列的,这样可以提高导入数据的效率。
适用数据库引擎
MyISAM和InnoDB
禁用事务自动提交
InnoDB数据库引擎是支持事务的,可以先禁用事务自动提交,等数据插入完成,再启用事务自动提交。达到提高插入性能。
语法如下
#禁用事务自动提交
SET autocommit = 0;
#开启事务自动提交
SET autocommit = 1;
适用数据库引擎
InnoDB
三、总结
对于MylSAM引擎的表,常见的插入优化方法如下:
- 禁用索引:对于非空表,插入记录时,MySQL会根据表的索引对插入的记录建立索引.如果插入大量数据,建立索引会降低插入记录的速度.为了解决这种情况可以在插入记录之前禁用索引,数据插入完毕后再开启索引。
对于空表批量导入数据,则不需要进行此操作,因为MylSAM引擎的表是在导入数据之后才建立索引的。
- 禁用唯一性检查:插入数据时,MySQL会对插入的记录进行唯一性校验.这种唯一性校验也会降低插入记录的速度.为了降低这种情况对查询速度的影响,可以在插入记录之前禁用唯一性检查,等到记录插入完毕后再开启。
- 批量插入数据:向数据表中插入多条数据时,一次性插入多条比每次插入一条的性能要高出很多。
- 批量导入数据:使用LOAD DATA INFILE导入数据比用INSERT插入数据的性能高。
对于InnoDB引擎的表,常见的插入优化方法如下:
- 禁用唯一性检查:插入数据时,MySQL会对插入的记录进行唯一性校验.这种唯一性校验也会降低插入记录的速度.为了降低这种情况对查询速度的影响,可以在插入记录之前禁用唯一性检查,等到记录插入完毕后再开启。
- 禁用外键检查:插入数据之前执行禁止对外键的检查,数据插入完成之后再恢复对外键的检查。
- 禁止事务自动提交:InnoDB数据库引擎是支持事务的,可以先禁用事务自动提交,等数据插入完成,再启用事务自动提交。达到提高插入性能。
所以,嗯,这题的答案选。。评论区大声告诉虚竹哥。
四、参考
MySQL进阶技能树–>写优化–>插入优化
SQL快速入门-了解MySQL存储引擎(SQL 小虚竹)
我是虚竹哥,我们明天见~
相关文章:
![](https://img-blog.csdnimg.cn/852fec86d2f14aada092aac32c961fc7.png)
【第31天】SQL进阶-写优化- 插入优化(SQL 小虚竹)
回城传送–》《31天SQL筑基》 文章目录零、前言一、练习题目二、SQL思路:SQL进阶-写优化-插入优化解法插入优化禁用索引语法如下适用数据库引擎非空表:禁用索引禁用唯一性检查语法如下适用数据库引擎禁用外键检查语法如下适用数据库引擎批量插入数据语法…...
![](https://img-blog.csdnimg.cn/8e34c67564d643948386d5d7379a886c.png)
SpringBoot自动装配的原理
前言 在开发SpringBoot项目时,当我们引入spring-boot-starter-xxx依赖后,想要使用依赖中的bean,直接就用Autowired拿来用了,不需要用xml或者注解的方式把它先注入到Spring容器中。这就是自动装配的特性,本文来讲述Spri…...
![](https://img-blog.csdnimg.cn/2c44c89951374e1c9f739fe72720d379.png)
Vue3电商项目实战-分类模块5【12-二级类目-结果区-排序组件、13-二级类目-结果区-数据加载、14-二级类目-结果区-进行筛选】
文章目录12-二级类目-结果区-排序组件13-二级类目-结果区-数据加载14-二级类目-结果区-进行筛选12-二级类目-结果区-排序组件 目的:封装排序组件,完成排序切换效果 大致步骤: 定义一个组件 sub-sort,完成基础布局在 sub.vue 组件…...
![](https://img-blog.csdnimg.cn/595353331eac4b348483f9dba91b917f.jpeg#pic_left)
计算机操作系统概述
文章目录1.0 操作系统概述1.1 操作系统的目标1.2 操作系统的功能1.3 操作系统结构1.4 操作系统接口1.5 操作系统的发展1.6 操作系统的特征2.0 进程管理2.1 进程调度2.2 进程调度算法2.3 进程间通信2.4 进程间的同步2.5 软件实现互斥的方法2.6 硬件实现互斥的方法2.7 信号2.8 管…...
![](https://img-blog.csdnimg.cn/img_convert/1832f08dedad86524ac96a1019748658.png)
面试官让你说说react状态管理?
hooks 为什么不能放在条件判断里 以 setState 为例,在 react 内部,每个组件(Fiber)的 hooks 都是以链表的形式存在 memoizeState 属性中 update 阶段,每次调用 setState,链表就会执行 next 向后移动一步。如果将 setState 写在条…...
![](https://img-blog.csdnimg.cn/2bf2d3af69b442faa1c2a84508b86aeb.png)
CUDA线程块的分配
为了确保能够真正地了解线程块的分配,接下来我们写一个简短的内核程序来输出线程块、线程、线程束和线程全局标号到屏幕上。现在,除非你使用的是 3.2 版本以上的 SDK否则内核中是不支持 printf的。因此,我们可以将数据传送回 CPU 端然后输出到…...
![](https://img-blog.csdnimg.cn/c4b1b4fc82024ea18988365911a6070c.png)
史密斯圆图
在射频、微波中,常常使用史密斯圆图来做阻抗匹配。在不涉及复杂的数学推导,仍能把圆图用起来。 比如,共轭匹配。 RL1jX,需要找到-jX来抵消jX,消掉虚部之后,只留下实部,最终等效为RL‘1。 史密…...
![](https://img-blog.csdnimg.cn/img_convert/2da57ee67292a52f6945b70d56a6390f.png)
Spring国际化实现
Java国际化 Java使用Unicode来处理所有字符。 Locales 国际化主要涉及的是数字、日期、金额等。 有若干个专门负责格式处理的类。为了对格式进行控制,可以使用Locale类。它描述了: 一种语言一个位置(通常包含)一段脚本(可选,自Java SE7开…...
![](https://img-blog.csdnimg.cn/16ee522720d84a2cad2b88e9b6887216.png)
10- 天猫用户复购预测 (机器学习集成算法) (项目十) *
项目难点 merchant: 商人重命名列名: user_log.rename(columns{seller_id:merchant_id}, inplaceTrue)数据类型转换: user_log[item_id] user_log[item_id].astype(int32)主要使用方法: xgboost, lightbm竞赛地址: 天猫复购预测之挑战Baseline_学习赛_天池大赛-阿里云天池…...
![](https://www.ngui.cc/images/no-images.jpg)
对于《MySQL 实战45讲》的理解
一.理论 一条SQL执行过程 连接器分析器优化器执行器 索引 索引的出现其实就是为了提高数据查询的效率,就像书的目录一样 常见索引数据结构(每碰到一个新数据库,我们需要先关注它的数据模型,这样才能从理论上分析出这个数据库的适用场景) 哈希…...
![](https://www.ngui.cc/images/no-images.jpg)
XQuery 函数
XQuery 1.0、XPath 2.0 以及 XSLT 2.0 共享相同的函数库。 XQuery 函数 XQuery 含有超过 100 个内建的函数。这些函数可用于字符串值、数值、日期以及时间比较、节点和 QName 操作、序列操作、逻辑值等等。您也可在 XQuery 中定义自己的函数。 XQuery 内建函数 XQuery 函数命…...
![](https://img-blog.csdnimg.cn/da100ba3f4e94abc94d2f867cb06bb99.png)
Elasticsearch的安装及常用操作
文章目录一、Elasticsearch的介绍1、Elasticsearch索引2、Elasticsearch的介绍二、Elasticsearch的安装1、安装ES服务2、安装kibana3、Docker安装ES4、Docker安装Kibana三、ES的常用操作1、索引操作2、文档操作3、域的属性3.1 index3.2 type3.3 store总结一、Elasticsearch的介…...
![](https://img-blog.csdnimg.cn/img_convert/53112b7895f1742910a1cb3c2643f2e5.png)
网络安全应急响应服务方案怎么写?包含哪些阶段?一文带你了解!
文章目录一、服务范围及流程1.1 服务范围1.2 服务流程及内容二、准备阶段2.1 负责人准备内容2.2 技术人员准备内容(一)服务需求界定(二)主机和网络设备安全初始化快照和备份2.3市场人员准备内容(1)预防和预…...
![](https://www.ngui.cc/images/no-images.jpg)
11、事务原理和实战,MVCC
事务原理和实战 1. 认识事务2. 事务控制语句2.1 开启事务2.2 事务提交2.3 事务回滚3. 事务的实现方式3.1 原子性3.2 一致性3.3 隔离性3.3 持久性4purge thread线程5事务统计QPS与TPS5.1 QPS5.2 TPS6. 事务隔离级别6.1 隔离级别6.2 查看隔离级别6.3 设置隔离级别6.4 不同隔离级别…...
![](https://img-blog.csdnimg.cn/c9eaf86ac34c47a6928d08af5f37c225.png)
Robust Self-Augmentation for Named Entity Recognition with Meta Reweighting
摘要 近年来,自我增强成为在低资源场景下提升命名实体识别性能的研究热点。Token substitution and mixup (token替换和表征混合)是两种有效提升NER性能的自增强方法。明显,自增强方法得到的增强数据可能由潜在的噪声。先前的研究…...
![](https://img-blog.csdnimg.cn/c60b937e11c74f0e97f71518917a4dbc.png)
Java基础-xml
1.xml 1.1概述 万维网联盟(W3C) 万维网联盟(W3C)创建于1994年,又称W3C理事会。1994年10月在麻省理工学院计算机科学实验室成立。 建立者: Tim Berners-Lee (蒂姆伯纳斯李)。 是Web技术领域最具权威和影响力的国际中立性技术标准机构。 到目前为止&#…...
![](https://www.ngui.cc/images/no-images.jpg)
TCP的Nagle算法和delayed ack---延时发送和延时应答与稍带应答选项
本文目录提高TCP的网络利用率的二个思考解决方案:Nagle算法和delayed ack(延时发送和延时应答与稍带应答选项)Nagle算法和delayed ack算法同时启动可能会导致的问题提高TCP的网络利用率的二个思考 我们都知道,TCP是一个基于字节流…...
![](https://img-blog.csdnimg.cn/img_convert/8cd380a24d6a2563596f06a47b20de3f.png)
智能拣配单解决方案
电子货架标签系统(ESLs),是一种放置在货架上、可替代传统纸质价格标签的电子显示装置, 每一个电子货架标签通过有线或者无线网络与商场计算机数据库相连, 并将最新的商品价格通过电子货架标签上的屏显示出来。 电子…...
![](https://www.ngui.cc/images/no-images.jpg)
如何防御入侵服务器
根据中华人民共和国刑法: 第二百八十六条违反国家规定,对计算机信息系统功能进行删除、修改、增加、干扰,造成计算机信息系统不能正常运行,后果严重的,处五年以下有期徒刑或者拘役;后果特别严重的ÿ…...
![](https://img-blog.csdnimg.cn/37f1c0fcae3c441bba29c077435f1f3c.png)
[软件工程导论(第六版)]第4章 形式化说明技术(课后习题详解)
文章目录1. 举例对比形式化方法和欠形式化方法的优缺点。2. 在什么情况下应该使用形式化说明技术?使用形式化说明技术时应遵守哪些准则?3. 一个浮点二进制数的构成是:一个可选的符号(+或-)&…...
![](https://img-blog.csdnimg.cn/img_convert/379e83ebc3e368fb2022e6e70d11b130.png)
Premiere基础操作
一:设置缓存二:ctrI导入素材三:导入图像序列四:打开吸附。打开吸附后素材会对齐。五:按~键可以全屏窗口。六:向前选择轨道工具。在时间线上点击,向前选中时间线上素材。向后选择轨道工具&#x…...
![](https://img-blog.csdnimg.cn/946bdb3cfae84882b2aaa97deb929012.png)
Prometheus监控案例-tomcat、mysql、redis、haproxy、nginx
监控tomcat tomcat自身并不能提供监控指标数据,需要借助第三方exporter实现:https://github.com/nlighten/tomcat_exporter 构建镜像 基于tomcat官方镜像,重新制作一个镜像,将tomcat-exporter和tomcat整合到一起。Ddockerfile如…...
![](https://img-blog.csdnimg.cn/851ea9485742417b8d469a855d5a784d.png)
如何寻找SAP中的增强
文章目录0 简介1 寻找一代增强2 寻找二代增强2.2 在包里也可以看到2.3 在出口对象里输入包的名字也可以找到2.4 通过以下函数可以发现已有的增强2.5 也可以在cmod里直接找2.6 总结3 寻找第三代增强0 简介 在SAP中,对原代码的修改最不容易的是找增强,以下…...
![](https://www.ngui.cc/images/no-images.jpg)
算法刷题打卡第95天: 最大平均通过率
最大平均通过率 难度:中等 一所学校里有一些班级,每个班级里有一些学生,现在每个班都会进行一场期末考试。给你一个二维数组 classes ,其中 classes[i] [passi, totali] ,表示你提前知道了第 i 个班级总共有 totali…...
![](https://img-blog.csdnimg.cn/img_convert/540e2d5c57d74c989a02f3a0d4dc8a4f.png)
Springboot扩展点系列之终结篇:Bean的生命周期
前言关于Springboot扩展点系列已经输出了13篇文章,分别梳理出了各个扩展点的功能特性、实现方式和工作原理,为什么要花这么多时间来梳理这些内容?根本原因就是这篇文章:Spring bean的生命周期。你了解Spring bean生命周期…...
![](https://img-blog.csdnimg.cn/img_convert/2988e864ba2a4ca8aed5b9e7c8aeed73.jpeg)
OnGUI Color 控件||Unity 3D GUI 简介||OnGUI TextField 控件
Unity 3D Color 控件与 Background Color 控件类似,都是渲染 GUI 颜色的,但是两者不同的是 Color 不但会渲染 GUI 的背景颜色,同时还会影响 GUI.Text 的颜色。具体使用时,要作如下定义:public static var color:Color;…...
![](https://www.ngui.cc/images/no-images.jpg)
【日刻一诗】
日刻一诗 1)LeetCode总结(线性表)_链表类 2)LeetCode总结(线性表)_栈队列类 3)LeetCode总结(线性表)_滑动窗口 4)LeetCode总结(线性表&#x…...
![](https://img-blog.csdnimg.cn/img_convert/15299bab903e76958cd5840af880d6fa.png)
设计模式 状态机
前言 本文梳理状态机概念,在实操中状态机和状态模式类似,只是被封装起来,可以很方便的实现状态初始化和状态转换。 概念 有限状态机(finite-state machine)又称有限状态自动机(英语:finite-s…...
![](https://img-blog.csdnimg.cn/img_convert/8fb1c0f5fe1ca1a0940a56e76d823fca.webp?x-oss-process=image/format,png)
React源码分析(二)渲染机制
准备工作 为了方便讲解,假设我们有下面这样一段代码: function App(){const [count, setCount] useState(0)useEffect(() > {setCount(1)}, [])const handleClick () > setCount(count > count)return (<div>勇敢牛牛, <sp…...
![](https://www.ngui.cc/images/no-images.jpg)
Object.defineProperty 和 Proxy 的区别
区别:Object.defineProperty是一个用来定义对象的属性或者修改对象现有的属性的函数,,而 Proxy 是一个用来包装普通对象的对象的对象。Object.defineProperty是vue2响应式的原理, Proxy 是vue3响应式的原理1)参数不同Object.defineProperty参数obj: 要定…...
![](https://img-blog.csdnimg.cn/img_convert/7dc37547de520758ce8ab6a5e1fd6fa5.png)
网站开发2008/百度知道官网首页登录入口
各位商家,大家好!有赞DSP全新广告投放系统于1月6日发布,提供从流量到转化交易全流程广告效果监测。【产品简介】有赞广告投放系统,依托有赞电商大数据优势,为有赞商家提供精准投放的一体化解决方案。系统整合了腾讯广告…...
![](/images/no-images.jpg)
做商铺的网站有那些/百度下载官方下载安装
python的mysql操作参照 python操作mysql数据库 ,python对mysql的操作基本都可以在教程中学会,由于初次用python使用mysql,经历了一些坑,为了警醒自己和帮助小白少走弯路,在博客中记录下python调用mysql的注意事项&a…...
![](/images/no-images.jpg)
驾校门户网站模板/十堰seo
我今天在网站中加入了最新 Windows/MS-Office/IE 严重漏洞下载的网址,请各位读者与网友尽快下载与更新!!我的网站: http://www.faqdiy.cn/转载于:https://blog.51cto.com/hawke/194339...
![](https://img-blog.csdnimg.cn/img_convert/5c7e17a3c9d1f8693e13164458b18b33.png)
搭建网站首页/自己有货源怎么找客户
上汽董事长称不能接受与华为合作自动驾驶,这应该属于正常的商业抉择,同时同业竞争者不会合作是正常的商业共识,韩国两大电视企业三星和LG就长期不曾合作,三星和苹果作为手机行业的竞争对手互相提防,上汽集团董事长也说…...
![](https://yqfile.alicdn.com/18458284aa5fb52592553a3f107f6fb6614ec1f3.png)
做二手设备的网站/百度指数网页版
本节书摘来异步社区《树莓派实战秘籍》一书中的第1章,第1.12节,作者:【美】Ruth Suehle ,Tom Callaway,更多章节内容可以访问云栖社区“异步社区”公众号查看 1.12 技巧12连接SSH 树莓派实战秘籍对于任何headless项目、以及任何从…...
![](/images/no-images.jpg)
美国地接公司怎么在中国网站做推广/怎样能在百度上搜索到自己的店铺
亲测可用,若有疑问请私信 MySQL5.7.5后only_full_group_by成为sql_mode的默认选项之一,这可能导致一些sql语句失效。 比如在使用group by进行分组查询报错 1 查看自己的sql_mode配置: 在sql命令行中输入select sql_mode;这时我们能够看到自己的…...