zoukankan      html  css  js  c++  java
  • 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七层协议

     

  • 相关阅读:
    while...break 实例
    java ++ -- 异或 短路与 短路或 三目条件
    Java StringBuffer与StringBuider
    输入任意5个整数,输出它们的和。
    java输入年份和月份,输出天数
    进制转换
    luogu 4884 多少个1?
    SDOI2013 随机数生成器
    CQOI2018 破解D-H协议
    模板BSGS(SDOI2011计算器) 模板EXBSGS
  • 原文地址:https://www.cnblogs.com/yunxintryyoubest/p/10801532.html
Copyright © 2011-2022 走看看