文档章节

常用数据库优化

learn_more
 learn_more
发布于 2015/05/09 18:00
字数 628
阅读 182
收藏 21

    

    数据库优化自然是我们经常需要注意的地方,尤其使用mybatis的人知道,XML中sql一目了然,一旦你的sql写的不够超前,就会受到别人的指点,说这个可以这样改改,那个可以那样改改。起初,对于老程序员的指指点点本人总是不以为然,后面渐渐就发现,有些基础东西我们必须去学会、去运用。

    数据库的优化自然是一个很深奥的东西,尤其是Oracle。这里就不讨论那些深奥有难懂的东西了,本人使用Sqlserver 、PostgreSQL 、MySQL 等,所以,这些关系型数据库的优化大多是差不多了,这里指给出最常见,最基础的东西;


  第一类问题:查询语句中尽量减少全表扫描

查询缓慢很多都是因为语句执行时引擎放弃索引搜索而直接采用了全表扫描,具体如下:

1、where 条件 以及 order by 涉及的列应该为该列建立索引

2、where 条件中避免对字段进行null判断,所以建议为字段设置默认值

3、where 条件中避免使用or,建议使用union all 替代 or

4、where 条件中避免使用 in not in ,本周就是or,建议使用exist 代替

5、where 条件中避免使用 like ‘%some%’,模糊查询或者使用like都会全表检索

6、where 条件中避免运算或函数操作,应该把运算放在关系条件的右边,等待预编译计算

7、where 条件中避免使用1=1,尽管这样处理在代码中是非常灵活的

8、count(*)应该改成count(1)

    第二类问题:其他优化,以及个人建议

9、varchar/nvarchar 代替 char/nchar ,因为首先变长字段存储空间小,其次对于查询来说,在一个相对较小的字段内搜索效率要高些。

10、delete insert update 都会进行锁表,所以对于经常进行查询的关系,应该尽量把经常操作的字段和经常查询的字段进行分离成两个关系分别存储

11、尽量少使用select *,没用的字段不需要返回


© 著作权归作者所有

共有 人打赏支持
learn_more
粉丝 91
博文 240
码字总数 210196
作品 0
深圳
程序员
Oracle性能优化之性能调整_超越OCP精通Oracle视频教程培训38

Oracle性能优化之性能调整超越OCP精通Oracle视频教程培训38 课程介绍 风哥Oracle视频教程<>的第8/10套:Oracle性能优化之性能调整。学习Oracle性能优化,性能调整必备知识讲解 ,操作系统优化调...

风哥Oracle
06/28
0
0
2017年底,公司招聘Android开发技术要求热点--数据来自各名企

天冷被迫穿上秋裤了,转眼来到2017年底,又快到一年一度的春季跳槽季了,大家有怎样的想法和准备呢? 突发奇想,秉着对市场招聘Android的行情进行一番简单调研,从拉钩网上截取了当前正在招聘...

翻滚吧李博
2017/12/05
0
0
MySQL数据库优化学习笔记

------------数据库优化学习笔记0502------------ 0:优化的目的 --避免出现页面访问出错 由于数据库连接超时产生的页面5xx错误 由于查询过慢造成的页面无法加载 *由于阻塞造成的数据提交异常...

雨醉风尘
2016/05/04
24
0
架构师必备词汇和知识点

01 高可用 负载均衡(负载均衡算法) 反向代理 服务隔离 服务限流 服务降级(自动优雅降级) 失效转移 超时重试(代理超时、容器超时、前端超时、中间件超时、数据库超时、NoSql超时) 回滚机...

t4i2b10X4c22nF6A
2017/11/24
0
0
Java基础面试题

1 用过jdk8吗?了解函数式编程吗?NIO了解吗?2 CopyOnWrite应用场景?3 如何java实现互斥锁?zk实现分布式队列?4 数据库优化方式? 数据库索引有哪些,区别。5 如何保证一个类是线程安全的...

HappyBoyLi
2017/12/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Nexus Repository Manager 搭建私有docker仓库

Nexus Repository Manager 搭建私有docker仓库 2018年05月08日 14:44:23 阅读数:115 1.下载nexus3的镜像: docker pull sonatype/nexus3 2.使用镜像启动一个容器: docker run -d --name n...

linjin200
10分钟前
0
0
大数据技术的发展趋势

大数据领域已经涌现出了大量新的技术,它们成为大数据采集、存储、处理和呈现的有力武器。这些技术下一步将如何发展?它们之中哪些技术 将广为流行?又会诞生哪些新的技术? 技术趋向多样化,...

董黎明
13分钟前
1
0
谷歌浏览器插件入门示例

实现:任何网址实现图片下载和获取当前域名的cookies的json字符串。 图片下载是给小白用的,可以选中批量下载,获取cookies 是为了方便程序员调试用。 获取cookies: git地址: https://gite...

NLGBZJ
14分钟前
2
0
152. Maximum Product Subarray - LeetCode

Question 152. Maximum Product Subarray Solution 题目大意:求数列中连续子序列的最大连乘积 思路:动态规划实现,现在动态规划理解的还不透,照着公式往上套的,这个问题要注意正负,需要...

yysue
15分钟前
0
0
IDEA工具 jdk,tomcat,maven 配置

设置JDK、tomcat、maven的版本 一、JDK      如果下拉列表没有,SDKS ---> + ----> 选择下载的JDK目录 ---> APPLY OK    二、tomcat 三、Maven    四、生成 git 本地创库...

君千殇520
15分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部