有读者提出这么个问题,数据库高级开发工程师,要掌握哪些技能

这个话题非常具有启发性。要回答好这样一个话题,就要保证自己的数据库知识全面化,体系化,系统化,还要紧贴一线实战,以免和理论脱轨太远。最好的方法是,与玩得好的业内高手交流。

我们眼里的高级,可能只是高手眼里的入门。不要只听一家之言,多看多思考,多求证,会获得更多启发。

所以,我尝试整理一些话题,掌握这些知识,可能你已经踩进数据库行业高级门槛了。但重要的事情,再说一遍,我们眼里的高级,可能是另外一些人眼里的入门。

今天先说开发。

很多朋友接触数据库,肯定不是一开始就做DBA,哪个老板愿意给新人DBA的岗位,那无异于在云霄走钢丝。数据是企业命脉这种老套的话,我也不想啰嗦,反正道理都懂,保护数据就是在保护企业资产与市值。

如果不明白,参考微盟程序员删库跑路事件。

作为开发,CRUD 是基本功,但很多朋友,写个行列转换,都要查下手册的,要我说你高级,还真不敢。再一个,如果没有数据库提供的函数,你能手写一个动态的行列转换SQL吗?这两题,算是第一道关。

第二道关,尽可能多的知道数据库软件自带的一些函数。有朋友说,不想背那么多函数,到用的时候,自己写一个。

亲,请对比下你自己写的函数与系统函数的性能,再来这么横,好嘛。自己有多懒,代码有多烂,心里没个数么。都没用过系统函数,凭自己那点水平造轮子,不是在给自己挖坑,给团队挖坑,给公司挖坑吗?

RowNumber,Rank这类分析函数,系统都做了优化的,你还能写得过微软,Oracle,或者TeraData这帮人?

第三道关,你能不能开发一套函数给数据库使用?如果系统提供的函数,功能完不成,性能又不好,而项目又急需,怎么办?

举个SQL Server的例子,一直以来,T-SQL对正则是支持不到位的,很多时候,LIKE又不能很好的解决IP地址,网址等解析操作。但c#是完美支持正则的,你会不会想到用到c#去封装一个函数,注册到SQL Server中,供团队使用?

不仅 SQL Server的CLR函数能做这样的事,Oracle的Java包,Hive的定义程序包,等等,都能支持程序员写扩展函数。

第四道关,开发这块的进阶,最终会强烈地反应在性能调优上。针对别人调优到5秒的查询,你会不会继续优化,使其突破1秒或者500ms?

如果从技术上无法调优了,是不是可以从业务角度,数据模型角度去尝试?

如果突破数据库领域,是不是可以从应用架构入手,比如增加缓存,读写分离,分布式数据库?能不能把QPS/TPS提高一个数量级?

继续这么深入研究下去,在数据库这个行业,你肯定不愁工作的事儿。

有没有想过,你眼中的SQL进阶,别人看来连入门都不是?相关推荐

  1. 想要精通算法和SQL的成长之路 - 两两交换链表中的节点

    想要精通算法和SQL的成长之路 - 两两交换链表中的节点 前言 一. 两两交换链表中的节点 前言 想要精通算法和SQL的成长之路 - 系列导航 一. 两两交换链表中的节点 原题链接 给你一个链表,两两 ...

  2. 想要精通算法和SQL的成长之路 - 第N高的薪水(SQL)

    想要精通算法和SQL的成长之路 - 第N高的薪水(SQL) 前言 一. 第二高的薪水 1.1 offset 的使用 1.2 ifnull 的使用 1.3 分页查询 1.3 总结 二. 第N高的薪水 前 ...

  3. 布衣,“我只想看到你眼中的倔强”

    布衣,"我只想看到你眼中的倔强" ---写在布衣首张专辑<那么久>的边上 如果说摇滚是音乐中的异数,那么布衣乐队绝对是摇滚中的异数."我们的风格不是民谣,也不 ...

  4. 想要精通算法和SQL的成长之路 - 超过经理收入的员工(SQL)

    想要精通算法和SQL的成长之路 - 超过经理收入的员工(SQL) 前言 一. 超过经理收入的员工 1.1 自连接 1.2 子查询 1.3 join 语句 前言 想要精通算法和SQL的成长之路 - 系列 ...

  5. 想要精通算法和SQL的成长之路 - 判断子序列问题

    想要精通算法和SQL的成长之路 - 判断子序列问题 前言 一. 判断子序列 1.1 动态规划做法 1.2 双指针 二. 不同的子序列 前言 想要精通算法和SQL的成长之路 - 系列导航 一. 判断子序 ...

  6. SQL 进阶技巧(上)

    由于工作需要,最近做了很多 BI 取数的工作,需要用到一些比较高级的 SQL 技巧,总结了一下工作中用到的一些比较骚的进阶技巧,特此记录一下,以方便自己查阅,主要目录如下: SQL 的书写规范 SQL ...

  7. SQL进阶教程 | 史上最易懂SQL教程 5小时零基础成长SQL大师

    目录 第一部分:基础--增删查改 [第一章]做好准备 Getting Started (时长25分钟) [第二章]在单一表格中检索数据 Retrieving Data From a Single Ta ...

  8. 【SQL进阶】03.执行计划之旅1 - 初探

    听到大牛们说执行计划,总是很惶恐,是对知识的缺乏的惶恐,所以必须得学习执行计划,以减少对这一块知识的惶恐,下面是对执行计划的第一讲-理解执行计划. 本系列[T-SQL]主要是针对T-SQL的总结. S ...

  9. .NET深入实战系列—Linq to Sql进阶

    .NET深入实战系列-Linq to Sql进阶 最近在写代码的过程中用到了Linq查询,在查找资料的过程中发现网上的资料千奇百怪,于是自己整理了一些关于Linq中容易让人困惑的地方. 本文全部代码基 ...

最新文章

  1. 使用CNN做文本分类——将图像2维卷积换成1维
  2. php指定时间显示内容,织梦用php判断某个时间段显示和隐藏内容
  3. IOS开发(九):场景
  4. 取两个日期相差几年_干货~44个最常用的日期和时间类函数组合
  5. 一个很好地List实现源码
  6. Servlet的重定向和转发特点
  7. lua菜鸟教程_Lua语言学习
  8. 如何实现多风格选择 样式实时切换?
  9. shell入门(二)——面试题实例
  10. HDU 1411--校庆神秘建筑(欧拉四面体体积计算)
  11. HTTP从入门到入土(1)——五层网络模型
  12. (二十一)访问者模式-代码实现
  13. xp也可以将U盘格为NTFS
  14. c语言依次调用字符串中的元素,C语言经典题目(某校复试真题)
  15. 密码战争,区块链技术之路
  16. IReport导出PDF字体加粗失效
  17. 正态性检验ks和sw区别_t检验常见问题汇总解答,你想知道的都在这里
  18. 轩迅汇如何做好个人定位?定位越早,受益越多
  19. Git 必知必会《上》
  20. 2018-11-04 在线代码离线翻译Chrome插件一马v0.0.14

热门文章

  1. post报文给mqtt服务器没有响应,post请求转为mqtt的方法
  2. ssis lookup_SSIS中的LOOKUP转换概述
  3. t–sql pl–sql_SQL Server –在T-SQL中使用最低的度量单位
  4. azure云数据库_Azure SQL数据库中的漏洞评估和高级威胁防护
  5. 实验十一 团队作业7:团队项目设计完善编码
  6. 关于开票本的几个操作细节
  7. 对学习java的心得体会1
  8. Postman接口压力测试
  9. [dp][递归] Jzoj P4211 送你一棵圣诞树
  10. python 字符串编码解码和格式化问题