如何改善mysql数据装载操作效率的方法_新手课堂:详述怎样晋升MySQL中数据装载效率...

本文探讨了如何优化数据库的数据装载操作,强调了批量装载、使用LOADDATA而非INSERT语句、避免索引刷新以及利用压缩协议减少网络负载等方式提高效率。通过实验和策略选择,可以显著加快大量数据的导入速度。
摘要由CSDN通过智能技术生成

许多时分关怀的是优化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 语句中指定将以恣意方式赋予缺省值的列。均匀来说,这样做语句会更短,能降低议决网络传送给服务器的字符数。此外,语句包括的值较少,服务器所执行的分析和转换就会较少。

假设表是索引的,则可运用批量插入( LOAD DATA 或多行的INSERT 语句)来降低索引的开支。这样会最小化索引更新的影响,由于索引只须要在一切行处理过时才执行刷新,而不是在每行处理后就刷新。

假设须要将大量数据装入一个新表,应该树立该表且在未索引衣服载,装载数据后才树立索引,这样做较快。一次树立索引(而不是每行修正一次索引)较快。

假设在装载之前删除或禁用索引,装入数据后再重新树立或启用索引能够使装载更快。假设想对数据装载运用删除或禁用战略,必需要做一些实验,看这样做能不能值得(假设将少数数据装入一个大表中,重建和索引所花费的时间能够比装载数据的时间还要长)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值