- 1、本文档共26页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SQL语句书写注意事项 6、复合索引的使用限制 create index Inx_mwi_receiver on mv_workitem(receiver_id, receiver); 索引Inx_mwi_receiver为复合索引,对mv_workitem表的receiver_id与receiver列进行索引,其中receiver_id列为此复合索引的引导列如果查询时条件中没有附带引导列进行查询则该索引失效,如 select mv_workitem where receiver_id = 1213; select mv_workitem where receiver = 张三; select mv_workitem where receiver_id = 1213 and receiver = 张三; 上述三条语句中第一与第三条语句能用到索引,而第二条语句无法使用索引。 SQL语句书写注意事项 7、使用exists替代in操作符 elect num from a where num in(select num from b) 与: select num from a where exists(select 1 from b where num=a.num) 两条语句产生相同的结果,但是后者的效率显然要高于前者。因为后者不会产生大量锁定的表扫描或是索引扫描。 SQL语句书写注意事项 8、避免使用不一致的数据类型进行查询 如: select * from t_cm_info_inst a where a.infoid=1213; select * from t_cm_info_inst a where a.infoid=‘1213’; t_cm_info_inst表中的infoid为字符类型,此两条语句运行的结果相同,但是第一条语句会是数据库引擎做全表扫描,而第二条语句则会用到infoid列的索引。 SQL语句书写注意事项 9、使用列名而不是*进行表查询 如: select * from t_cm_info_inst; select infoid,infotitle,.... from t_cm_info_inst; 此两条语句查询时第二条语句的性能高于第一条语句的性能,因为第一条语句数据引擎在解析时会从字典表中将t_cm_info_inst表的列名全部找出来后改写为第二条语句再运算结果集,这个过程是有性能消耗的。 在程序中用到多少列就查询多少列,而不是没有选择性的使用*进行语句查询。 SQL语句书写注意事项 10、能用UNION ALL就不要用UNION 如: select * from mv_workitem a where a.receiver_id = 1213 union all select * from mv_workitem a where a.receiver_id = 1214 与 select * from mv_workitem a where a.receiver_id = 1213 union select * from mv_workitem a where a.receiver_id = 1214 上述两条语句得到的结果集一致,但是第二条语句的效率高于第一条语句,因为UNION操作符会有一个重复值判断的过程,而UNION ALL操作符连接两个语句查询出来的所有结果集 SQL语句书写注意事项 11、灵活运用视图 把表的一个子集进行排序并创建视图,有时能加速查询。它有助于避免多重排序操作,而且在其他方面还能简化优化器的工作。 视图是预编译的,每一条语句在运行时数据库引擎都会对语句进行解析编译后存放在内存中,如果将一些复杂的语句做成视图则减少了编译语句的过程,能加快sql语句运行速度。 3.基于数据库的SQL优化 1.SQL语句书写注意事项 2.基于程序的SQL优化 基于程序的SQL优化 1、不要在循环中作sql语句查询操作,最好能一次将需要的数据查询出来后再用循环进行比对。2、能一次查询出结果集就不要分开成多个语句进行查询,因为java每执行一次sql语句包括打开连接,执行语句,获取结果集,关闭连接等等一系列操作,这些操作都是需要消耗性能的。3、对于大表可以在程序中作分表操作。 如log_table表我们可以根据日志产生的年度将日志存放到不同的表中,2010年的记录可以放到 log_table_2010表中,2011年产
您可能关注的文档
- Scrum敏捷开发模式..ppt
- SGB750母差保护介绍..ppt
- SMART..pptx
- 中研科华医药连锁行业信贷风险分析及投资建议报告(92页).doc
- SOA实施方法论及流程介绍..ppt
- 中秋月饼市场的营销策划1(阅读).ppt
- 中矿岩石力学第二章.ppt
- 中科大分析化学课件chapter2.ppt
- 中科大有机化学课件chapt17周环反应(阅读).ppt
- 中科大空间解析几何.ppt
- 2025年安徽工商职业学院单招职业技能测试题库带答案(典型题).docx
- 2025年洛阳科技职业学院单招职业技能测试题库带答案(新).docx
- 2025年荆门职业学院单招职业技能测试题库及答案(易错题).docx
- 2025年宣化科技职业学院单招职业技能测试题库(精练).docx
- 2025年包头职业技术学院单招职业技能测试题库带答案(新).docx
- 2025年江西工商职业技术学院单招职业技能测试题库带答案(精练).docx
- 2025年黑龙江农业经济职业学院单招职业技能测试题库精编.docx
- 2025年山东艺术设计职业学院单招职业技能测试题库带答案(基础题).docx
- 2025年陕西工商职业学院单招职业技能测试题库带答案(突破训练).docx
- 2025年承德护理职业学院单招职业技能测试题库【word】.docx
最近下载
- 重庆市育才中学2022-2023学年八年级上学期第二次周末自主作业英语试题.pdf VIP
- 2025年小学主题班会设计.pptx VIP
- 基于STM32的智能睡眠环境监测系统设计与实现.docx
- 2025年皖北卫生职业学院单招职业技能测试题库新版.docx VIP
- 2024年山东省淄博市中考语文试题卷(含答案解析).docx
- 气井井口智能生产控制系统.pdf VIP
- 工程伦理 课件全套 李正风 第1--9章 工程与伦理、 如何理解伦理--- 全球化视野下的工程伦理(414页).pptx
- 力学在实际生活中的应用.ppt
- 胰岛素皮下注射团体标准解读.pptx
- 装配式建筑施工-全套PPT课件.pptx
文档评论(0)