当前位置: 首页 > news >正文

菏泽网站建设电话成都高新区国土规划建设局网站

菏泽网站建设电话,成都高新区国土规划建设局网站,12316网站建设方案,网站系统繁忙怎么办首先以一张思维导图从全局上给大家分享以下几种SQL优化策略#xff0c;再详细讲解 1、避免使用SELECT * 在阿里的编码规范中也强制了数据库查询不能使用SELECT *#xff0c;因为SELECT *方式走的都是全表扫描#xff0c;导致的结果就是查询效率非常低下#xff0c;其原因为… 首先以一张思维导图从全局上给大家分享以下几种SQL优化策略再详细讲解 1、避免使用SELECT * 在阿里的编码规范中也强制了数据库查询不能使用SELECT *因为SELECT *方式走的都是全表扫描导致的结果就是查询效率非常低下其原因为当我们使用SELECT *方式时SQL会有一个格式化的阶段这个阶段会将所有表字段都取出(将*号解析成表的各个字段)增加了查询解析器的成本 2、小表驱动大表 小表驱动大表指的是使用数据量较小索引比较完备的表然后使用它的索引和条件对大表的数据进行关联和筛选从而减少数据的计算量提升查询效率 例如当下我又两张表分别为学生表(有45条数据)分数表(有1000条数据)它们需要进行关联查询我们可能会用到LEFT JOIN或者RIGHT JOIN 在FROM我们跟的表一般为主表此时如果我们的SQL语句为 “……FROM student LEFT JOIN score……” 就叫做小表驱动大表反之就是大表驱动小表因为它需要将分数表中的1000条数据都查出来之后在去一一关联学生表 3、用连接查询代替子查询 在MySQL进行两张或两张以上的表进行联查时可以使用连接查询和嵌套查询尽可能减少嵌套查询的次数其原因为         ①嵌套查询需要执行两次数据库查询一次是外部查询一次是嵌套子查询而是用连接查询可以减少数据库查询次数从而提升查询效率         ②连接查询可以更好地用上数据库的索引而嵌套查询通常需要扫描整个表因此连接查询可以跟快的执行查询操作 当然以上说法也并不绝对在嵌套查询中我们依旧可以通过合理的使用IN或EXIST关键字来提升查询效率(遵循小表驱动大表原则)。 IN关键字通常应用在嵌套查询的嵌套条件前例如“……FROM xxx WHERE xxx IN(嵌套SQL)” 如果sql语句中包含了IN关键字则它会优先执行IN里面的子查询语句然后再执行IN外面的语句。如果IN里面的数据量很少作为条件查询速度更快。 EXISTS关键字也使用在嵌套查询条件前例如 “……FROM xxx WHERE EXISTS (嵌套SQL语句)” 如果sql语句中包含了exists关键字它优先执行exists左边的语句即主查询语句。然后把它作为条件去跟右边的语句匹配。如果左侧SQL语句查询数据量较少依旧能够提升查询效率。 4、提升GROUP BY的查询效率 如果没有为GROUP BY的字段设置索引则查询可能会变得非常慢(这里面涉及到了一个B树的概念它会为我们有序的排序索引的数据)当为需要分组的字段建立索引后数据就是有序的这些有序的数据会排列在一起 5、使用批量插入 MySQL本身就支持批量插入数据例如 而在代码中通过持久层访问数据库插入数据时我们也不建议一条一条或者通过循环的形式插入因为每次调用循环里的插入方法 相当于都要和数据库进行一次宜采取的方式是将数据封装在一个集合中通过集合一次性插入数据例如 6、当一次查询数据量过多时一定要使用LIMIT进行分页 一个查询返回成干上万的数据行不仅占用了大量的系统资源也会占用更多的网络带宽影响查询效率也有可能造成内存溢出。使用LIMIT可以限制返回的数据行数减轻了系统负担提高了查询效率。使用LIMIT可以达到以下结果 避免过度提取数据对于大型数据库系统从数据库中提取大量的数据可能会导致系统崩溃。使用LIMIT可以限制提取的数据量避免过度提取数据保护系统不受影响。优化分页查询分页查询需要查询所有的数据才能进行分页处理这会浪费大量的系统资源和时间。使用LIMIT优化分页查询可以只章询需要的数据行缩短查询时间减少资源的浪费。简化查询结果有时我们只需要一小部分数据来得出决策而不是整个数据集。使用LIMIT可以使结果集更加精简和易于阅读和理解。限制行数非常有用因为它可以提高查询性能、减少处理需要的时间并且只返回我们关心的列 7、需要合并数据时尽可能使用UNION ALL而非UNION UNION ALL和UNION通常在数据合并中使用例如 “(SELECT * FROM user WHERE id1) UNION (SELECT * FROM user WHERE id2)”          SQL语句使用UNION关键字后可以获取去重后的数据而如果使用UNION ALL关键字可以获取所有数据包含重复的数据。在业务允许出现重复数据的情况下我们更推荐使用UNION ALL因为UNION去重需要经过数据的遍历、排序和比较计算无疑是更耗费性能和CPU资源的。 除非是有些特殊的场景比如UNION ALL之后结果集中出现了重复数据而业务场景中是不允许产生重复数据的这时可以使用UNION或者在UNION前利用索引提升查询效率 8、尽可能减少表关联的次数(减少JOIN的使用) 对于这个优化策略我的理解是减少JOIN的次数并非减少必要使用次数JOIN终究在查询效率上还是远高于IN的这个减少的含义应该是减少表的冗余关联字段来减少表的链接(即需要找到多表能够进行关联的最少字段用最少的字段进行关联)。 减少JOIN的使用次数更多的原因还是在SQL语句的编写上很容易造成关联错误。 以上就是关于SQL调优的策略介绍总结来说SQL调优的原则就是减少数据扫描、减少与数据库反复的交互次数、减少内存开销而大部分的优化策略都是在索引的基础上是实现的。 ——————————————————————————————————————————— 路漫漫其修远兮吾将上下而求索~ 到此关于SQL调优策略的讲解算告一段落了写作不易如果你认为博主写的不错 请点赞、关注、评论给博主一个鼓励吧您的鼓励就是博主前进的动力。
http://www.zqtcl.cn/news/673388/

相关文章:

  • 青岛做网站公wordpress文章付费阅读
  • 小灯具网站建设方案360优化大师
  • 开发公司与物业公司前期合同网站优化的推广
  • 汉堡云虚拟主机aso安卓优化公司
  • 医院 网站建设 新闻营销外包
  • 优秀网站网址郑州无痛人流哪家医院好
  • 备案网站能打开吗大良营销网站建设流程
  • 哪些网站可以做淘宝店招石油网站编辑怎么做
  • 网站出现建设中集团网站建设特点
  • asp网站开发 pdf企业展厅设计公司盛世笔特
  • 怎么创建网站 免费的免费开源的网站系统
  • 中山精品网站建设资讯网页设计师就业趋势
  • 网站建设哪家好 万维科技wordpress广告公司模板
  • 如何选择建网站公司网站页面html静态化
  • 建设银行网站入口网页设计培训 周末双休
  • 做企业网站建设的公司为什么企业网站不是开源系统
  • 网站客户端怎么做的做汽车脚垫版的网站
  • 做数学题挣钱的网站广西建筑特种作业证件查询官网
  • 汉字叔叔花了多少钱做网站免费原创视频素材
  • 网站开发提现功能互联网推广工作好做吗
  • 做阿里渠道的销售要有哪些网站网站评论怎么做的
  • 建设中网站如何上传图片深圳营销型网站建设设计公司
  • 建设电商网站需要多少钱家具网页设计素材
  • 物流网站html5模板网站整站开发
  • 网站随机代码网站开发技术试验教程
  • 做翻译 网站吗仿京东电商的网站开发报价
  • 霞山网站建设公司网站开发怎样手机号验证
  • 大型门户网站建设苏州优化网站建设
  • 网站步骤怎么搭建个人网站
  • 荥阳网站建设公司wordpress会员上限