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七层协议

 

posted @ 2019-05-02 04:41  风不再来  阅读(188)  评论(0编辑  收藏  举报