对于web应用开发,多数性能瓶颈均出现在数据库上,除了采用分布式架构或云处理(大公司基本上都是),更重要的是平时程序设计时要遵照一些规则,从根本上提高系统的性能,以下总结了一些常用的规则方法,仅供参考,欢迎跟帖补充。。。

  1、 把数据、日志、索引放到不同的I/O设备上,增加读取速度。数据量(尺寸)越大,提高I/O越重要。

  2、 纵向、横向分割表,减少表的尺寸,如:可以把大数据量的字段拆分表。

  3、 根据查询条件,建立索引,优化索引、优化访问方式,限制结果集的数据量。注意填充因子要适当(最好是使用默认值0)。索引应该尽量小,尽量使用字节数小的列建索引,不要对有限的几个值的列建单一索引。

  4、 用OR的字句可以分解成多个查询,并且通过UNION链接多个查询。它们的速度只与是否使用索引有关,如果查询需要用到联合索引,用UNION all执行的效率更高。

  5、 在查询SELECT语句中用WHERE子句限制返回的行数,避免表扫描。如果返回不必要的数据,则浪费了服务器的I/O资源,加重了网络的负担,降低了性能。如果表很大,在表扫描期间将表锁住,禁止其他的联结访问表,后果很严重。

  6、 注意使用DISTINCT,在没有必要时不要用,它同UNION一样会使查询变慢。

  7、 在IN后面值的列表中,将出现最频繁的值放在最前面,出现最少的放在最后面,减少判断的次数。

  8、 一般在GROUP BY和HAVING子句之前就能剔除多余的行,所以尽量不要用它们来做剔除行的工作,也就是说尽可能在WHERE中过滤数据。

  9、 尽量将数据的处理工作放在服务器上,减少网络的开销,如使用存储过程。存储过程是编译、优化过,并且被组织到一个执行规划里,且存储在数据库中的SQL语句(存储过程是数据库服务器端的一段程序),是控制流语言的集合,速度当然快。

  10、不要在一句话里再三地使用相同的函数,浪费资源,将结果放在变量里再调用更快。

  11、针对大量只读查询操作进行优化的方法:

1)数据量小的数据,可以考虑不存储在数据库中,而是通过程序常量的方式解决。

2)需要存储在数据库中的数据,可以考虑采用物化视图(索引视图)。当DBA在视图上创建索引时,这个视图就被物化(执行)了,并且结果集被永久地保存在唯一索引中,保存方式与一个有聚簇索引的表的保存方式相同。物化视图减除了为引用视图的查询动态建立结果集的开销,优化人员可以在查询中使用视图索引,而不需要在FROM子句中直接指定视图。

3)数据存储时可以考虑适当的数据冗余,以减少数据库表之间的链接操作,提高查询效率。

4)针对数据的特点,采取特定的索引类型。例如,位图索引等。

  12、对于SQL语句书写时的一些建议:

1)写语句时能够确定数据库对象所有者的,尽可能把所有者带上,如:

SELECT * FROM dbo.Users

2)存储过程中,参数定义最好放在最前面,尽可能一次定义,如:

DECLARE @USER_ID INT

,@USER_NAME   VARCHAR(50)

,@PASSWORD VARCHAR(50)

3)为参数赋值时,尽可能一次赋值,如:

SELECT @USER_ID = 1001

,@USER_NAME = 'xiaojun.liu'

4)尽量少用游标

转载于:https://www.cnblogs.com/colder/archive/2010/12/20/1911559.html

关系型数据库性能优化总结(转)相关推荐

  1. 传统关系型数据库性能优化全攻略

    影响数据库性能的因素 业务需求层面 不合理的需求 论坛发帖数实时更新select count(*) from table 深翻页 比如查询第1万页的内容冷数据加载到内存热数据被swap出去了目前基本已 ...

  2. MySQL 数据库性能优化之SQL优化

    2019独角兽企业重金招聘Python工程师标准>>> MySQL 数据库性能优化之SQL优化 发布时间: 2012 年 3 月 21 日  发布者: OurMySQL 来源:简朝阳 ...

  3. mysql update emp set_Mysql数据库性能优化一

    今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显.关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我们程序员需要去关注的事情.当我们去设计数据库表结构,对操作数据 ...

  4. DEV05 GBase 8a MPP Cluster 数据库性能优化

    GBase 8a MPP Cluster 数据库性能优化 一.数据库为何要优化 (一)从 DBA 角度谈数据库为何要优化 (二)数据库产品的选型: (三)从 DE(开发工程师)角度谈数据库为何要优化 ...

  5. 数据库性能优化经验总结

    1.数据库访问优化法则 要正确的优化SQL,我们需要快速定位能性的瓶颈点,也就是说快速找到我们SQL主要的开销在哪里?而大多数情况性能最慢的设备会是瓶颈点,如下载时网络速度可能会是瓶颈点,本地复制文件 ...

  6. 超详细:数据库性能优化(一)

    出处: https://www.cnblogs.com/easypass/archive/2010/12/ 08/1900127.html 1.数据库访问优化法则 要正确的优化SQL,我们需要快速定位 ...

  7. 性能优化系列第一篇——数据库性能优化

    本文章转载的Trinea大神的文章,文章原地址 http://www.trinea.cn/android/database-performance/ 性能优化之数据库优化 本文为性能优化的第一篇--数 ...

  8. 历年双11实战经历者:我们是如何做数据库性能优化及运维-CloudDBA和天象

    8月24日阿里云数据库技术峰会上,阿里云高级DBA专家玄惭带来面对超大规模的数据库集群,尤其是在每年像双11这样重大促销活动中,阿里云是如何进行运维和优化的.本文主要介绍了天象和CloudDBA两个产 ...

  9. MySQL数据库性能优化之一

    MySQL数据库性能优化需要考虑的几个方面: 1.sql语句及索引优化 2.数据库结构优化 3.系统配置优化 4.硬件优化 转载于:https://blog.51cto.com/davidlinux/ ...

最新文章

  1. Spring boot 使用
  2. 常用webshell提权方法总结
  3. accdb 用户类型未定义_Python早期设计与开发:数字类型的设计缺陷
  4. Jsp页面的几种传参方式
  5. java 数据分析 用户信息_Java数据库——使用元数据分析数据库
  6. 德力西双电源自动转换开关说明书_今日优品:南开区FLQ3-25双电源自动转换开关全国服务-老友网...
  7. JAVA面试要点009---TimeUnit用法
  8. Git学习笔记一《版本控制之道-使用Git》
  9. 黑马程序员————java中面向对象的三大特性
  10. 恩佐盒子服务器维护,恩佐宝盒有苹果版吗
  11. 楼道声光控灯闪烁_照明灯闪烁其中一个原因就是它
  12. 流量回放专题-jvm-sanbox-repeater
  13. UVA 177 PaperFolding 折纸痕 (分形,递归)
  14. python爬虫构建国外代理池_建立爬虫代理ip池
  15. Typora图片云存储
  16. 【BJOI2019】排兵布阵 DP
  17. win10解决设置默认打开方式不生效问题
  18. EXCEL中数字显示为E+18且尾数为0的解决方法
  19. 如何清理占用计算机内存,告诉你如何深度清理电脑内存
  20. 大数据Hadoop入门教程 | (一)概论

热门文章

  1. 物流配送系统设计java,ZigBee物流配送系统设计
  2. 安装git安装路径在哪_Atom插件安装与git的安装配置
  3. c调用python gensim包_Jupyter Notebooks嵌入Excel并使用Python替代VBA宏
  4. 中raise抛出异常_Python 异常处理知识点汇总,五分钟就能学会 !
  5. php海外研发,国外主流PHP框架比较
  6. lvds接口屏线安装图解_五分钟让你学会液晶拼接屏安装方法
  7. 一张纸厚度是多少毫米_一张纸的威力有多大?纸折103次捅破宇宙,理论荒诞却无法反驳...
  8. python实现qq登录界面_使用Python编写一个QQ办公版的图形登录界面!
  9. hybrid7 宝马active_【图】宝马ActiveHybrid7系 动力节能完美结合_汽车之家
  10. 面向对象方法的优势简化软件开发的过程_软件开发技巧的途径