前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >对不起,你以为的SQL进阶,只是别人眼中的入门

对不起,你以为的SQL进阶,只是别人眼中的入门

作者头像
Lenis
发布2020-06-02 17:01:32
7300
发布2020-06-02 17:01:32
举报
文章被收录于专栏:有关SQL有关SQL

图 | 榖依米

我们的 SQL 与大数据微信群,有读者提出这么个问题,数据库高级开发工程师,要掌握哪些技能

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

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

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

今天先说开发。

很多朋友接触数据库,肯定不是一开始就做DBA,哪个老板愿意给新人DBA的岗位,那无异于在云霄走钢丝。数据是企业命脉这种老套的话,我也不想啰嗦,反正道理都懂,保护数据就是在保护企业资产与市值。如果不明白,参考微盟程序员删库跑路事件。所以 DBA 的高级方向,我放在下篇文章。

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

有些低端的培训机构,找我推广告,我一看,他们把这一道关的 SQL 知识点,写在他们的培训手册或课程大纲里,真是要笑掉大牙。美其名曰,SQL 进阶技能。然后标价1999,元,附上“今天活动,前 100 位 1 折,只要199元”的跳楼价!

实际上,靠这些烂大街,随便在微信读书翻翻就懂的技巧,能找到“走向人生巅峰”的工作,才怪呢!我是不信的。我也不接这样的广告,虽然广告费更可观!

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

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

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

仅说这些理论的话,我都觉得空洞了。那就说点实战的题:

kNN 算法的 SQL 实现

传说中 6 个月都未必能全解开的 3 道 SQL 题,来挑战下?

以上都是有难度的实战题,自己写写看,就知道进阶,是怎么回事了。

Talk Is Cheap, Show me your Code!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-05-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 有关SQL 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档