位置: 编程技术 - 正文

提高MySQL中数据装载效率(mysql性能提升)

编辑:rootadmin
相对来说,将数据装入数据库是直截了当的。然而,也存在可用来改善数据装载操作效率的策略,其基本原理如下: 成批装载较单行装载更快,因为在装载每个记录后,不需要刷新索引高速缓存;可在成批记录装入后才刷新。 在表无索引时装载比索引后装载更快。如果有索引,不仅必须增加记录到数据文件,而且还要修改每个索引以反映增加了的新记录。 较短的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 语句)来减少索引的开销。这样会最小化索引更新的影响,因为索引只需要在所有行处理过时才进行刷新,而不是在每行处理后就刷新。 如果需要将大量数据装入一个新表,应该创建该表且在未索引时装载,装载数据后才创建索引,这样做较快。一次创建索引(而不是每行修改一次索引)较快。 如果在装载之前删除或禁用索引,装入数据后再重新创建或启用索引可能使装载更快。如果想对数据装载使用删除或禁用策略,一定要做一些实验,看这样做是否值得(如果将少量数据装入一个大表中,重建和索引所花费的时间可能比装载数据的时间还要长)。 可用DROP INDEX 和CREATE INDEX 来删除和重建索引。另一种可供选择的方法是利用myisamchk 或isamchk 禁用和启用索引。这需要在MySQL服务器主机上有一个帐户,并对表文件有写入权。为了禁用表索引,可进入相应的数据库目录,执行下列命令之一: 对具有.MYI 扩展名的索引文件的MyISAM 表使用myisamchk,对具有.ISM 扩展名的索引文件的ISAM 表使用isamchk。在向表中装入数据后,按如下激活索引: 如果决定使用索引禁用和激活,应该使用第章中介绍的表修复锁定协议以阻止服务器同时更改锁(虽然此时不对表进行修复,但要对它像表修复过程一样进行修改,因此需要使用相同的锁定协议)。 上述数据装载原理也适用于与需要执行不同操作的客户机有关的固定查询。例如,一般希望避免在频繁更新的表上长时间运行SELECT 查询。长时间运行SELECT 查询会产生大量争用,并降低写入程序的性能。一种可能的解决方法为,如果执行写入的主要是INSERT 操作,那么先将记录存入一个临时表,然后定期地将这些记录加入主表中。如果需要立即访问新记录,这不是一个可行的方法。但只要能在一个较短的时间内不访问它们,就可以使用这个方法。使用临时表有两个方面的好处。首先,它减少了与主表上SELECT 查询语句的争用,因此,执行更快。其次,从临时表将记录装入主表的总时间较分别装载记录的总时间少;相应的索引高速缓存只需在每个批量装载结束时进行刷新,而不是在每行装载后刷新。这个策略的一个应用是进入Web 服务器的Web 页访问MySQL数据库。在此情形下,可能没有保证记录立即进入主表的较高权限。 如果数据并不完全是那种在系统非正常关闭事件中插入的单个记录,那么减少索引刷新的另一策略是使用MyISAM 表的DELAYED_KEY_WRITE 表创建选项(如果将MySQL用于某些数据录入工作时可能会出现这种情况)。此选项使索引高速缓存只偶尔刷新,而不是在每次插入后都要刷新。 如果希望在服务器范围内利用延迟索引刷新,只要利用--delayed-key-write 选项启动mysqld 即可。在此情形下,索引块写操作延迟到必须刷新块以便为其他索引值腾出空间为止,或延迟到执行了一个flush-tables 命令后,或延迟到该索引表关闭。

推荐整理分享提高MySQL中数据装载效率(mysql性能提升),希望有所帮助,仅作参考,欢迎阅读内容。

提高MySQL中数据装载效率(mysql性能提升)

文章相关热门搜索词:提高mysql查询效率,提高mysql查询速度的方法,mysql数据量大提高查询速度,mysql提高效率,mysql性能提升,mysql数据量大提高查询速度,mysql数据量大提高查询速度,mysql提高效率,内容如对您有帮助,希望把文章链接给更多的朋友!

mysql 前几条记录语句之(limit) MySql没有提供top方法。可是他有limit方法提供同样的功能。SELECT*FROM`tfidf`orderbyweightdesclimit1,SELECT*FROM`tfidf`orderbyweightdesclimit

php 读取mysql数据库三种方法 ?$dbh=@mysql_connect("localhost:","root","");/*定义变量dbh,mysql_connect()函数的意思是连接mysql数据库,"@"的意思是屏蔽报错*/if(!$dbh){die("error");}/*die()函数的意

mysql sql语句总结 createdatabasemytestdefaultcharset=utf8//创建数据库createtableusers//创建表(user_idintnotnullauto_increment,user_namevarchar()notnull,descriptionvarchar(),primarykeyPK_userid(user_id));sh

标签: mysql性能提升

本文链接地址:https://www.jiuchutong.com/biancheng/312525.html 转载请保留说明!

上一篇:MySQL 数据类型 详解(mysql数据类型怎么判断)

下一篇:mysql 前几条记录语句之(limit)(mysql查询数据库前五条信息)

  • 工资怎么扣费
  • 资金账簿印花税最新政策2022年
  • 车辆购置税能否退税
  • 收到对方红字发票如何做账
  • 政府补贴营业外收入所得税汇算清缴需要调增吗
  • 发票服务名称都有什么
  • 附加税退回分录
  • 总产值和主营业务收入
  • 提供咨询服务的小规模企业是一般纳税人吗
  • 固定资产与累计折旧有对应关系吗
  • 企业的两金是哪两金
  • 增值税即征即退收入要交企业所得税吗
  • 高新技术企业在增值税有什么优惠
  • 工程管理费如何使用
  • 安全基金提取标准
  • 用于购买固定资产的账户
  • 将自制的一批新产品用于对外投资,生产成本为300000
  • 没超过标准的招待费缴税吗
  • 营改增后开餐厅需要交什么税?
  • 通讯费要计入应付账款吗
  • 按期汇总缴纳印花税可以退税吗
  • 税负几个点
  • 房地产企业各个阶段所涉及的税种
  • 公司借出的私人物品
  • 公司购买汽车的购置税怎么做账
  • 为什么应收和预收在一起
  • 个体工商户200万以下减半
  • 公司给员工发放的福利都要扣个税吗
  • win11怎么关闭系统自动更新
  • 住房公积金个税抵扣标准
  • 金税卡服务费抵扣政策
  • 租赁费和场地租赁费区别
  • 别再等待别在徘徊是什么歌
  • 不征税收入用于支出所形成的费用是什么意思
  • 出售固定资产减按2%会计处理1%怎么处理
  • 世界十大销量书
  • 购买财务软件会有操作流程吗
  • 无偿赠送增值税问题
  • 转让应收账款会计分录
  • 纳税人跨县(市、区)提供建筑服务,应向建筑服务发生地
  • 企业所得税申报表A类
  • 分页limit
  • vue 长列表优化
  • 实际出资大于注册资金
  • php array_key_exists() 与 isset() 的区别
  • python闭包主要解决什么问题
  • c语言中有哪些循环结构
  • 营业外支出明细账
  • 报销人和收款人不一致钱打到哪个账户
  • 递延收益的影响
  • 利息收入的纳税义务发生地
  • 政府会计财务报表有哪些
  • 资产负债表固定资产清理
  • 退个税需要提供哪些资料
  • 公司财务报表中不设其他综合收益项目可以吗
  • 税控盘减免税款怎么结转
  • 注册公司时的注册资金认缴是什么意思
  • 专利财政补贴
  • 某企业福利部门
  • 收到银行手续费发票怎么入账
  • 发票遗失重开需要收费吗?
  • 民办幼儿园如何生存
  • 会计账户分类是什么意思
  • 工业企业应通过其他应付款科目核算的有
  • win10微软在哪
  • windows7装进u盘
  • 开启win7
  • node. js教程
  • javascript模块化规范有哪些
  • linux如何一次性删除多个文件
  • 文本框几种常用属性
  • Node.js中的全局变量有哪些
  • 简述linux与windows相比,有哪些优势
  • 详解九章算法
  • python基础教程视频教程
  • Javascript this 关键字 详解
  • 酒类包装物押金的消费税处理规定
  • 北京车位过户手续费多少
  • 没工作个人所得税
  • 划拨土地评估价
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设