目录

  • Mysql优化(出自官方文档) - 第七篇

    • Optimizing Data Change Statements

Mysql优化(出自官方文档) - 第七篇

Optimizing Data Change Statements

主要涉及到三种操作:INSERT, UPDATEDELETE

1 Optimizing INSERT Statements

尽量将多次小操作合并为,这样子,就只会产生一次连接并且数据一次性发给服务器, 而且,也只有在操作最后才会进行索引更新和一致性检查。

根据预估,通常来讲,一次插入操作所耗费的时间比例如下:

  • 网络连接(3)
  • 发送请求给服务器(2)
  • 解析用户请求(2)
  • 插入行(1,特指插入一个单位行)
  • 插入索引(1,特指插入一个索引)
  • 关闭(1)

因此,你可以采取以下方式来优化插入操作:

  • 如果插入多行,那么使用INSERT语句一次性插入多行的功能,这样子速度会远高于单行插入,并且,调整bulk_insert_buffer_size参数,也可以使得插入操作更快。
  • 如果数据是来自于一个文本文件,那么使用LOAD DATA命令,该命令通常比INSERT操作要快20倍。
  • 尽量利用那些含有默认值的列,这样子可以减少Mysql的解析和插入开销。

  • See Section 8.5.5, “Bulk Data Loading for InnoDB Tables” for tips specific to InnoDB tables.
  • See Section 8.6.2, “Bulk Data Loading for MyISAM Tables” for tips specific to MyISAM tables.

2 Optimizing UPDATE Statements

UPDATE语句的优化类似于SELECT,只是多了一个写入操作;对于写入操作,和INSERT类似,一次性进行多行更新速度将比单行更新快很多。

3 Optimizing DELETE Statements

注:官方文档对于DELETE操作只涉及到了MyISAM表,对于InnoDB部分应该是通用的。

对于MyISAM表,删除行操作的开销通常来讲主要由需要更改的索引数量来决定,为了加快删除速度,可以增大key_buffer_size系统变量。

如果需要删除表中的所有行,那么使用TRUNCATE来代替DELETE FROM操作,TRUNCATE不是事务安全的,如果碰到其他事务或者表锁,那么会跑出错误,所以速度会比DELETE FROM快很多。

转载于:https://www.cnblogs.com/seancheer/p/11338676.html

Mysql优化(出自官方文档) - 第七篇相关推荐

  1. OpenGL ES着色器语言之语句和结构体(官方文档第六章)内建变量(官方文档第七、八章)...

    OpenGL ES着色器语言之语句和结构体(官方文档第六章) OpenGL ES着色器语言的程序块基本构成如下: 语句和声明 函数定义 选择(if-else) 迭代(for, while, do-wh ...

  2. Unity 优化翻译官方文档(二) ------ 平台特定覆盖的纹理压缩格式

    官方文档 : https://docs.unity3d.com/Manual/class-TextureImporterOverride.html 虽然Unity支持许多常见的图像格式作为导入纹理的源 ...

  3. Android HIDL 官方文档(七,END)—— 网络堆栈配置工具(Network Stack Configuration Tools)

    网络工具封装 网络工具封装过滤器 1 供应商接口与链 2 允许使用的命令 21 ip 22 iptables ip6tables 23 ndc 24 tc 对应的官方文档地址:HIDL(General ...

  4. 看懂mysql执行计划--官方文档

    原文地址:https://dev.mysql.com/doc/refman/5.7/en/explain-output.html 9.8.2 EXPLAIN Output Format The EXP ...

  5. Unity优化翻译官方文档(六) ------ CPU Usage Profiler

    官网地址 : https://docs.unity3d.com/Manual/ProfilerCPU.html CPU使用分析器显示在您的游戏中花费的时间.当它被选中时,下窗格将显示所选帧的分层时间数 ...

  6. storm mysql trident_Apache Storm 官方文档 —— Trident 教程

    Trident 是 Storm 的一种高度抽象的实时计算模型,它可以将高吞吐量(每秒百万级)数据输入.有状态的流式处理与低延时的分布式查询无缝结合起来.如果你了解 Pig 或者 Cascading 这 ...

  7. Unity 优化翻译官方文档(三) ------ Animation Clips

    动画剪辑是Unity动画中最小的组成部分.它们代表了一个孤立的运动,如RunLeft.跳转或爬行,并且可以以各种方式进行操作和组合,以产生生动的最终结果(参见动画状态机.动画控制器控制器或混合树).您 ...

  8. [WebApp开发]基础教程-Google官方文档-第四篇

    文档内容 在Android Browser中使用控制台API 在WebView中使用控制台API 参考 调试 如果你是在为Android开发web应用,那么,你可以使用控制台(console)的Jav ...

  9. mysql中括号_手把手教你看MySQL官方文档

    前言: 在学习和使用MySQL的过程中,难免会遇到各种问题.不知道当你遇到相关问题时会怎么做,我在工作或写文章的过程中,遇到不懂或需要求证的问题时通常会去查阅官方文档.慢慢的,阅读文档也有了一些经验, ...

  10. MySQL8.0.28安装教程全程参考MySQL官方文档

    MySQL8.0.28详细安装教程.提供了Windows10下安装MariaDB与MySQL8.0同时共存的方法,以及Linux发行版Redhat7系列安装MySQL8.0详细教程.Windows10 ...

最新文章

  1. Android系统进程间通信(IPC)机制Binder中的Server启动过程源代码分析(3)
  2. Qt动态库静态库的创建、使用、多级库依赖、动态库改成静态库等详细说明
  3. http几个版本的区别
  4. 报名 | 东南大学周张泉:基于知识图谱的推理技术
  5. c语言格式字符If,C语言所有语句格式 C语言中的的if语句共有多少种格式?
  6. scala初学之helloWorld
  7. matlab线圈磁场,利用Matlab计算螺线管内磁场分布研究.pdf
  8. Android v1、v2、v3签名原理
  9. gdb 命令_16. 如何使用 GDB 调试 Go 程序?
  10. 程序员应该如何学习线性代数
  11. 图像处理4:最大类间方差法(大津法)
  12. WhatsApp Botim 筛号,筛选群发消息,WhatsApp、Botim协议
  13. git cherry-pick的使用
  14. android修改自动背光,自动背光算法-Android 8.1
  15. 视频压缩 I P B 帧 详解
  16. C++实现LZ77压缩算法
  17. python中的search的group(0),group(1).........的方法
  18. Linux中的setuid简介
  19. 顺丰快递单号查询API接口调试demo【快递100API接口】
  20. 人工神经网络课后题答案,人工神经网络原理答案

热门文章

  1. for(;;)和while(true)的区别
  2. Flutter之Widget构建过程详解
  3. 汕尾php培训,系统发生错误
  4. Android视频会议--彩蛋
  5. bat 暂停一段时间_BAT面试问是否具备3年工作经验,这么回答绝了!
  6. php api 在线编辑导出,api在线管理,调试,文档生成工具之Apizza
  7. 144显示器只有60_3199元34寸144Hz高刷新曲面带鱼屏显示器咋样?用过才知道
  8. select命名_Maya中Pymel写个带界面的重命名工具(一)
  9. go模块的使用,调用第三方模块方法---go模块的复用方法
  10. python-gui-pyqt5的使用方法-3--自定义信号的初识