博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
开发DBA(APPLICATION DBA)的重要性
阅读量:5992 次
发布时间:2019-06-20

本文共 856 字,大约阅读时间需要 2 分钟。

开发DBA是干什么的?

1. 审核开发人员写的SQL,并且纠正存在性能问题的SQL ---非常重要

2. 编写复杂业务逻辑SQL,因为复杂业务逻辑SQL开发人员写出的SQL基本上都是有性能问题的,与其让开发人员写,不如DBA自己写。---非常重要

3. 参与DB 设计,尽早纠正不合理的DB 设计,ORACLE的性能是设计出来的,而不是调出来滴 ---这块非常重要

4. 对ORACLE进行基本的维护。

5. 与应用架构师配合,并且纠正应用架构师所犯错误,其实开发DBA 也带有应用架构师的角色

6. 对整个数据库进行高效的设计与规划,这个工作不能交给运维DBA, 因为运维不了解业务。

 

无法想象,没有开发DBA的公司,设计出来的系统性能不知道有多烂。

 

举个小例子

 

最近遇到个SQL 跑的很慢,第一次12秒出结果(从磁盘读入内存),第二次2秒出结果(数据都在buffer cache里面),SQL代码如下

 

SELECT COUNT(0) FROM P LEFT JOIN R ON P.ID = R.ID;

P 有200W 数据 R 有 100W 数据。这个SQL 第一次跑12秒,肯定无法接受。 那么大家看看这个SQL如何优化?

 

其实这个SQL写得有问题, 这里是外连接,并且求COUNT(*) 还有,JOIN字段是ID,ID 一般都是主键,那么这个SQL完全可以改写 为

 

SELECT COUNT(0) FROM P;

 

改写之后 COUNT(*) 直接读取 P表主键,0.1秒--1秒出结果,当然了,请注意,如果R表ID不是主键,并且R表ID 有重复值,COUNT(*) 会变大 ,不能这么改写

 

最初的SQL写得确实有问题,但是我们不能怪开发,因为别人毕竟对SQL理解不是那么专业,所以必须要有开发DBA把关。

大家可以想象一下,要是没开发DBA,当P表以及R表数据量增长到千万级/亿级,那得多慢啊。

 

仅以这个小例子,说明开发DBA的重要性,最近做了很多优化,基本上线上所有SQL都控制在1秒内返回结果。

 

 

 

 

 

转载地址:http://mwtlx.baihongyu.com/

你可能感兴趣的文章
oracle 条件查询,比较运算符,逻辑运算符,特殊运算符,判断空值,大小写敏感,多行,多列子查询...
查看>>
Django model进阶
查看>>
Rust的随机数
查看>>
hdu5246 超级赛亚ACMer (百度之星初赛)(模拟)
查看>>
页面跳转
查看>>
CF1030F Putting Boxes Together
查看>>
Git常用命令
查看>>
Librepilot-创建UAVObject及编译到飞机端和地面站端的步骤
查看>>
MySQL编程(0) - Mysql中文乱码问题解决方案
查看>>
产品之路
查看>>
关于XAMPP环境配置
查看>>
npm run dev 出错的解决办法
查看>>
socket传输过程
查看>>
自定义全局样式
查看>>
事件委托和事件冒泡
查看>>
使用redis和fastjson做应用和mysql之间的缓存
查看>>
tensorflow学习资源
查看>>
DICOM简介
查看>>
【Storm篇】--Storm基础概念
查看>>
Android 通过反射让SQlite建表
查看>>