• python总结四


    sql性能优化的几种方式:

    1.查询的模糊匹配:

    尽量避免在一个复杂查询里面使用like '%parm%',前面的%会导致相关列的索引无法使用,最好不要用

    直接修改后台,根据输入条件,先查出符合条件的供应商,并把相关的记录保存在一个临时表里面,然后在用临时表去做复杂关联

     

    2.索引问题:

    在做性能跟踪分析的时候,经常发现有不少的后台程序的问题是因为缺少合适的索引所造成的,有些表甚至一个索引都没有,这种情况往往都是因为设计表的时候,没去定义索引

     

    3.复杂操作

    部分update,select语句写的很复杂(经常嵌套多级子查询),可以考虑适当拆成几部,先生成一个临时数据表,在进行关联操作

     

    4.uodate

    同一个表的修改在一个过程里面出现好几十次,对于这类脚本其实可以整合在一个update语句来完成

     

    5.在where语句中,尽量避免对索引字段进行计算操作

     

    6.对where语句的优化,避免在where语句中使用in,not in,or后者having,可以使用exist和not  exist代替in和not in

    可以使用表链接代替exist,having可以用where来代替

    例如:

    select  *  from   orders   where name  not in (select  name  from   customer)

    优化之后:

    select  *  from   orders   where name  not   exist (select  name  from   customer)

     

    不要以字符格式什么数字,要以数字格式申明字符值,否则会使索引无效,产生全表索引

    例子:

    select  name   from   emp  where   nid=122

    不要使用select  name  from  emp where   nid='122'会产生全表扫描

     

    7.对select语句的法则

    在应用程序,包和过程中限制select  *  from  table 这种方式

    例子:

    select   nid  ,name   from   emp   where nid=12

    不要使用select   *   from  emp  where  nid=12

     

    8.排序

    避免使用耗费资源的操作,带有DISTINCE,UNION,MINUS,INTERSECT,ORDER  BY的sql语句会启动sql引擎执行,耗费资源

    的排序(sort)功能,DISTINCT需要执行一次排序操作,而其他的至少需要执行两次排序操作.

     

    9.临时表

    慎重使用临时表就可以极大的提高系统性能

     

    10.OSI七层协议

     

  • 相关阅读:
    Python中的赋值与深浅拷贝
    Python面试题解析之前端、框架和其他
    Python面试题解析之数据库与缓存
    Python面试题解析之网络编程与并发
    Python面试题解析之Python基础篇
    2、使用rpm包安装grafana
    1、在Centos上安装Grafana
    MySQL所学所思所想
    运维感悟(信息大爆炸的时代,该学习什么来保持着我们的竞争力)
    C#.NET 中的 Timer 计时器及 3 种使用方法
  • 原文地址:https://www.cnblogs.com/yunxintryyoubest/p/10801532.html
Copyright © 2020-2023  润新知