文档章节

常用数据库优化

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

    

    数据库优化自然是我们经常需要注意的地方,尤其使用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
粉丝 93
博文 240
码字总数 210196
作品 0
深圳
程序员
私信 提问
加载中

评论(0)

Oracle性能优化之性能调整_超越OCP精通Oracle视频教程培训38

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

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

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

翻滚吧李博
2017/12/05
0
0
Java基础面试题

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

HappyBoyLi
2017/12/13
0
0
MySQL数据库优化学习笔记

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

雨醉风尘
2016/05/04
47
0
Windows Mobile 开发系列文章收藏 - SQLite

Sqlite介绍 SQLite数据库 牛腩学习sqlite - 简记 概述介绍 SQLite入门与分析(一)---简介 SQLite入门与分析(二)---设计与概念 SQLite数据库扫盲 SQLite内存使用情况分析 SQLite常用资源 SQLi...

长征2号
2017/12/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

springcloud微服务实战_09_消息驱动

9.1 spring cloud stream 简介 spring cloud stream 是一个用来为微服务应用提供消息驱动能力的框架. 它可以基于 springboot 来单独的创建独立的,可用于生产的 spring 的应用程序. 它通过使用...

SP_K
34分钟前
75
0
福昕PDF编辑器个人版不能登录多个电脑问题处理

问题 福昕PDF编辑器个人版,只能在两台电脑登录,而且不能同时登录。但是当买换了新电脑后,新电脑属于第三台电脑,就不能登录使用编辑功能了。 解决 打开“我的电脑”,搜索出如下文件,删除...

InfoInit
47分钟前
65
0
pandas操作excel-08-简单绘图-柱状图

import pandas as pdimport matplotlib.pyplot as pltstudents = pd.read_excel('D:/output.xlsx', index_col='idx')students.sort_values(by='SinglePrice', inplace=True, ascending=......

烽焱10仴
48分钟前
52
0
向点击事件监听器添加“返回假”有什么作用?

很多次,我在HTML页面中都看到过这样的链接: <a href='#' onclick='someFunc(3.1415926); return false;'>Click here !</a> 那里return false有什么作用? 另外,我通常不会在按钮中看到它......

技术盛宴
53分钟前
37
0
搞不定Kafka重复消费?来看看就不一样了

前言 今天我们聊一个话题,这个话题大家可能在面试过程中,或者是工作当中经常遇到 :point_right: 如何保证 Kafka 消息不重复消费? 我们在做开发的时候为了程序的健壮性,在使用 Kafka 的时...

Java进阶程序员xx
今天
47
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部