摘抄自:http://database.ctocio.com.cn/153/9232653.shtml

很多时候关心的是优化SELECT 查询,因为它们是最常用的查询,而且确定怎样优化它们并不总是直截了当。相对来说,将数据装入数据库是直截了当的。然而,也存在可用来改善数据装载操作效率的策略,其基本原理如下:

成批装载较单行装载更快,因为在装载每个记录后,不需要刷新索引高速缓存;可在成批记录装入后才刷新。

在表无索引时装载比索引后装载更快。如果有索引,不仅必须增加记录到数据文件,而且还要修改每个索引以反映增加了的新记录。

较短的SQL 语句比较长的SQL 语句要快,因为它们涉及服务器方的分析较少,而且还因为将它们通过网络从客户机发送到服务器更快。这些因素中有一些似乎微不足道(特别是最后一个因素),但如果要装载大量的数据,即使是很小的因素也会产生很大的不同结果。我们可以利用上述的一般原理推导出几个关于如何最快地装载数据的实际结论:

LOAD DATA(包括其所有形式)比INSERT 效率高,因为其成批装载行。索引刷新较少,并且服务器只需分析和解释一条语句而不是几条语句。

LOAD DATA 比LOAD DATA LOCAL 效率更高。利用LOAD DATA,文件必须定位在服务器上,而且必须具有FILE 权限,但服务器可从磁盘直接读取文件。利用LOAD DATA LOCAL,客户机读取文件并将其通过网络发送给服务器,这样做很慢。

如果必须使用INSERT,应该利用允许在单个语句中指定多行的形式,例如:

可在语句中指定的行越多越好。这样会减少所需的语句数目,降低索引刷新量。如果使用mysqldump 生成数据库备份文件,应该使用--extended-insert 选项,使转储文件包含多行INSERT 语句。还可以使用- - o p t(优化) ,它启用--extended-insert 选项。反之,应该避免使用mysqldump 的--complete-insert 选项;此选项会导致INSERT 语句为单行,执行时间更长,比不用--complete-insert 选项生成的语句需要更多的分析。

使用压缩了的客户机/服务器协议以减少网络数据流量。对于大多数MySQL客户机,可以用--compress 命令行选项来指定。它一般只用于较慢的网络,因为压缩需要占用大量的处理器时间。

让MySQL插入缺省值;不要在INSERT 语句中指定将以任意方式赋予缺省值的列。平均来说,这样做语句会更短,能减少通过网络传送给服务器的字符数。此外,语句包含的值较少,服务器所进行的分析和转换就会较少。

如果表是索引的,则可利用批量插入(

如何改善mysql数据装载操作效率的方法_详述如何提高MySQL中数据装载效率相关推荐

  1. mysql中用于删除数据的是什么意思_在删除关系表中数据时,要先删除主表数据再删除从表数据。_学小易找答案...

    [单选题]在MySQL中,所有存储过程的信息存放在下列哪个数据库中 [填空题]拉伸试验能测定的塑性指标有: 和 . [单选题]下面查看视图的基本信息的语句中,正确的是 [单选题]下面关于视图建立的说法 ...

  2. 光滑噪声数据常用的方法_整理一份详细的数据预处理方法

    重磅干货,第一时间送达 作者:lswbjtuhttps://zhuanlan.zhihu.com/p/51131210 为什么数据处理很重要? 熟悉数据挖掘和机器学习的小伙伴们都知道,数据处理相关的工 ...

  3. Mysql创建数据库表,查看表结构,查看表中数据,查看建表语句

    Mysql创建数据库表,查看表结构,查看表中数据,查看建表语句 1.创建数据库表 create table t_student( 表属性以,隔开 最后一行不用,): 2.查看表结构 desc t_st ...

  4. MySQL导出数据为csv的方法(亲测),导出数据为各种文件类型

    最方便的还是用工具导出 mysql命令行导出,windows和linux都行,下面以windows为例: 登录mysql 1.查看导出权限 5.0mysql默认是不给导出数据到文件的,8.0有默认导出 ...

  5. mysql数据库特别大怎么备份_如何备份还原mysql数据库 mysql数据库太大备份与还原方法...

    本篇文章小编给大家分享一下mysql数据库太大备份与还原方法,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. 命令:mysqlhotcopy 这个命令会在拷贝文件之前会把表锁 ...

  6. hive 行转列和列转行的方法_读离线和实时大数据开发实战,为你揭开 Hive 优化实践的神秘面纱...

    前言 「1024,1GB,一级棒!程序仔们节日快乐!」 ❝ 指尖流动的 1024 行代码,到底是什么? ❞ ❝ 是10行的迷茫?是101行的叛逆?是202行的理性思考?是307行对渴望的冲动?还是40 ...

  7. 机器学习数据倾斜的解决方法_机器学习并不总是解决数据问题的方法

    机器学习数据倾斜的解决方法 总览 (Overview) I was given a large dataset of files, what some would like to call big d ...

  8. mysql端口号3306被占用_使用pandas将excel表格数据导入到mysql中

    需要用到的python第三方库:pandas/sqlalchemy 第一步:导入pandas/sqlalchemy库 import pandas as pd import sqlalchemy as ...

  9. mysql 遗失对主机的连接,MySQL远程连接丢失问题解决方法(Lost connection to MySQL server)...

    MySQL远程连接丢失问题解决方法(Lost connection to MySQL server) 最近服务器很不稳定,于是重装了mysql 和php 服务,但是接着却遇到了很头疼的麻烦. 远程连接 ...

最新文章

  1. HP c3000/c7000 blade switch GBE2c 初始配置
  2. 单片机有什么好的网课?
  3. 【CentOS 7LNMP架构33】,nginx负载均衡#180109
  4. 【Spark Summit EU 2016】使用Spark和StreamSets构建数据通道
  5. 接口java_JAVA 初识接口
  6. 7.使用php描述冒泡排序,PHP 数据结构 算法描述 冒泡排序 bubble sort
  7. 读取xml文件转成ListT对象的两种方法(附源码)
  8. java core 生成路径_core文件生成和路径设置
  9. win定时关机_如何让电脑定时自动关机
  10. openstack VM可以ping外部网络,但是外部网络ping不通VM
  11. Android 串口开发
  12. Hyperledger Composer和Hyperledger Fabric的关系、区别及概念
  13. JAVA开发常用类(六)
  14. 如何清除计算机搜索框内的搜索历史记录,如何清除搜索框关键字记录
  15. php 自动生成考卷下载,试卷生成器下载-试卷生成器电脑版下载[试题生成]-华军软件园...
  16. python:比较运算符(等于,小于,大于,不等于,大于等于,小于等于)的简单用法
  17. openFeign夺命连环9问,这谁受得了?
  18. 如何用java实现一个p2p种子搜索(3)-dht协议实现
  19. vue项目push 遇到send-pack: unexpected disconnect while reading sideband packetclient_loop: send disconn
  20. 【数据结构实训--集合基本运算(附代码)】

热门文章

  1. 蒙文字体怎么安装_焘哥带你玩转字体(三)字体的安装及显示问题
  2. 为什么要娶就娶电力女?!
  3. 2020,Python 已死?
  4. mysql inodb主键bug_MySQL的这个bug,坑了多少人?
  5. mysql noinstall 安装_mysql-noinstall安装指南
  6. python按键_【python】python控制鼠标和键盘
  7. 两数之和,两数相加(leetcode)
  8. java 对象的解释过程
  9. Linux学习之十二-Linux文件属性
  10. AES 加密256位 错误 java.security.InvalidKeyException: Illegal key size or default parameters