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

文 | 商业智能研究 2021-09-27

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

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

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

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

sql进阶,sql数据库开发,数据库高级工程师,sql中的函数

今天先说开发。

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

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

sql进阶,sql数据库开发,数据库高级工程师,sql中的函数

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

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

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

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

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

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

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

sql进阶,sql数据库开发,数据库高级工程师,sql中的函数

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

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

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

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

很显然在目前的信息时代,借助类似于FineBI的这些工具,可以让企业加速融入企业数据分析的趋势。备受市场认可的软件其实有很多,选择时必须要结合实际的情况。一般的情况下,都建议选择市面上较主流的产品,比较容易达到好的效果,目前企业数据分析BI软件市场占有率前列的,就是帆软BI软件——FineBI。

sql进阶,sql数据库开发,数据库高级工程师,sql中的函数

商业智能BI产品更多介绍:www.finebi.com

免费试用FineBI


本月阅读量最高的10篇文章

立即试用FineBI,还可获得更多的方案、案例和模板

免费下载和试用 >

售前咨询

服务热线

400-811-8890转1

售后咨询

在线QQ

800049425

服务热线

400-811-8890转2

投诉建议

总裁办24H投诉

173-127-81526