- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于MySQL查询优化技术研究
基于MySQL查询优化技术研究
摘要:随着网络数据库应用的发展,数据库用户对数据查询的速度要求也在日益提高,当MySQL数据表的数据量达到百万级时,普通SQL查询语句的效率直线下降,因此如何提高SQL语句查询效率,显得十分重要。该文介绍了目前广泛使用的多种查询语句优化方法。
关键词:MySQL;索引;查询优化
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2017)30-0035-02
MySQL数据库是以“客户端/服务器”模式实现的,是一个多用户、多线程的小型数据库,MySQL因其稳定、可靠、快速、管理方便以及支持众多系统平台的特点,成为世界范围内最流行的开源数据库之一。随着网络数据库应用的日益发展,数据查询的速度也越来越成为整个应用的性能瓶颈了,也成为数据库用户和设计者都极其关心的问题,因此,为了提高数据库系统的性能,对查询进行优化是必不可少的。
为了测试查询速度,首先创建数据库mydb,在mydb数据库中创建两张表,一个department(部门表),一个employee(员工表),其中employee表采用MyISAM数据存储引擎,为了在批量插入数据时速度更快。
CREATE TABLE department (id INT,deptname VARCHAR(50));
CREATE TABLE employee (id INT,deptid INT,ename VARCHAR(20)
)ENGINE=MYISAM;
定义存储过程p1(),并调用该存储过程将100001条记录批量插入employee表中。
DELIMITER // 将MySQL的结束符设置为//,因为MySQL默认的语句结束符号为分号“;”,为了避免与存储过程中的SQL语句结束符相冲突,需要使用DELIMITER改变存储过程的结束符,并以“END //”结束存储过程。存储过程定义完毕后再使用“DELIMITER ;”恢复默认结束符。
REATE PROCEDURE p1()
BEGIN
DECLARE i INT DEFAULT 0;
WHILE (i = 100000) DO
INSERT INTO empolyee (id,ename) VALUES (i,CONCAT(aaa,i));
SET i = i + 1;
IF MOD(i,1000)=0 THEN COMMIT;
END IF;
END WHILE;
END;//
调用存储过程P1,批量插入数据记录。
CALL P1();
1 创建索引,优化查询速度
在数据库操作中,经常需要查找特定的数据,而创建索引是提高查询速度的很重要的一种手段。没有创建索引的数据表是一个无序的数据行集合,如果执行查询时,数据库必须从第1条记录开始遍历,直到找到特定的数据,如果数据表很大,而符合条件的记录只有少量的话,这样的效率就会显然非常低,而创建索引则可以优化查询,提高查询速度。
1) 在使用min()或max()函数查询时,创建索引后,可以很快找到数据表中的最小值或最大值,无需检索所有记录。
未创建索引耗时情况:
reset query cache;―清空查询缓存,以免影响测试结果,下同。
select min(id) from employee;
结果耗时:1 row in set(0.17 sec)。
??建索引(create index ix_id on employee (id))后,先使用reset query cache清空查询缓存,再重新执行上述SQL语句,结果耗时:1 row in set(0.00 sec)。
2) 在group by关键词和order by关键词后的字段一般也要创建索引,以提升查询速度(执行下面所有的SQL语句前,都是用reset query cache清空查询缓存,以确保测试结果的有效性)。
在deptid上没有创建索引的耗时情况:
Select deptid,count(*) from employee group by deptid; 4 rows in set(0.03 sec)。
创建索引(Create index ix_deptid on employee (deptid);)后:再执行上述SQL语句的耗时情况:4 rows in set(0.02 sec)。
3) 在连接查询时,无论时几张表的连接查询,都要在子表的关联字段上创建索引,同样可以提升查询速度。
Select deptid,deptname,ename from
您可能关注的文档
- 基于MR3G无线网络质量评估方法研究.doc
- 基于MRANN模型大唐发电资本结构影响因素研究.doc
- 基于MRC模型工会文体活动组织模式柔性化研究.doc
- 基于MRF模型多模态图像配准技术研究.doc
- 基于MRF模型图像修复算法.doc
- 基于MRIO模型碳足迹跨国比较研究.doc
- 基于MRLTE网络站间距研究.doc
- 基于MROGH特征描述子图像局部拷贝―旋转―移动行为取证.doc
- 基于MRO重型机床闭环PLM模型及关键技术研究.doc
- 基于MRTG校园网络流量监控系统部署与实现.doc
- 基于M―Copula上证与深证地产指数尾部相关性研究.doc
- 基于M―K方法及成分提取海洋表层热状分析.doc
- 基于M―O―S模型大学生创业影响因素及大学生创业政策分析框架研究.doc
- 基于M估计转子不平衡量识别.doc
- 基于N3C―6D高校学生综合素质测评体系再思考.doc
- 基于NaiveBayes藏文人名性别自动识别.doc
- 基于NAND FLASH阵列存储技术研究.doc
- 基于NanoLCLTQOrbitrap技术蛋白质组学法探索人参干预气虚大鼠生物学基础.doc
- 基于NAND闪存FMNFS文件系统设计.doc
- 基于nano LCLTQOrbitrapMSMS香附四物汤干预原发性痛经模型小鼠卵巢组织差异表达蛋白筛选.doc
最近下载
- 可直接打印人教版七年级下册数学期末考试模拟试卷.docx VIP
- DBJ53_T-57-2013:云南省市政基础设施工程资料管理规程.pdf VIP
- 外研版(2019)选择性必修 第二册Unit 5 A delicate world Developing ideas Writing课件(共24张PPT).pptx VIP
- +带电跨越10kV线路专项施工方案模板.pdf VIP
- 沪教牛津版四年级英语上册全册教案(三年级起点).pdf VIP
- AS9100D内审质量审核检查表.xlsx VIP
- YDT 5178-2017 通信管道人孔和手孔图集.docx VIP
- 半固体制剂制备技术(1).pdf VIP
- 《产品形态设计》课件全套 第1--5章 产品形态设计概述---产品形态创意设计.pptx
- 提筒简易抽水试验.pdf VIP
文档评论(0)