首页 新闻 搜索 专区 学院

为何有些人不喜欢使用 SQL 方言?

0
悬赏园豆:10 [已解决问题] 解决于 2020-09-06 23:03

为何有些人不喜欢使用 SQL 方言? 尤其是喜欢用 ORM 的后端工程师

像是 oracle 的 pl/sql,sql server 的 t-sql

最近看一个新同事的code (有3年资历)
明明可以使用 t-sql 设定变数的方式,一个 sql script 解决

但却坚持要用 python + ansi sql 解决...
他说 : 「这样以后换数据库才比较方便」

我个人观点是,中途换数据库情况在我工作几年情况完全没遇过,觉得这样是 "过度设计"

并且个数据库厂商提供的方言,很多时候可以提供更高速度、方便的工具 "不应该不使用"

sql
我问故我在的主页 我问故我在 | 初学一级 | 园豆:43
提问于:2020-09-06 15:23
< >
分享
最佳答案
1

一般来说都是将数据库作为存储和查询工具,很少会有让数据库进行稍微复杂的计算(其实数据库支持各种计算),而是将数据从数据库中查询出来后,在应用层做计算;这样做是出于很多原因的,不仅仅是因为日后数据库迁移方便
所以,普通sql都这样用了,怎么还会使用sql方言呢

收获园豆:5
寻觅beyond | 小虾三级 |园豆:613 | 2020-09-06 20:59

但有时候查询完塞在内存,在进行计算,速度比起在数据库用方言解决慢很多

我问故我在 | 园豆:43 (初学一级) | 2020-09-06 21:01

@我问故我在: 如果数据库里面查到要处理的数据有10G,
1.使用数据库进行计算后返回结果(注意,这里一般是单机计算)
2.将数据从数据库取回到应用层,在应用层让多台机器并行计算;
这两种方式,你绝得哪种快呢?

寻觅beyond | 园豆:613 (小虾三级) | 2020-09-06 21:07

@寻觅beyond: 这样的框架设计不就要牵扯到分布式
这对一般项目来说,是否过度设计?

我问故我在 | 园豆:43 (初学一级) | 2020-09-06 21:31

@我问故我在: 每种设计,都是在某个设计的前提下进行改进,也就是说每种设计也都有优缺点,这是句废话,但也没毛病。
且不提框架设计,你就说,你用方言sql的一个功能,就好比用普通sql写了一个函数或者过程,这样在后期的维护过程以及排查问题时都会有影响。

寻觅beyond | 园豆:613 (小虾三级) | 2020-09-06 22:02
其他回答(1)
0

数据库换的几率不高, 能简单解决的就不要查询出来手工搞,原因
1.SQL的可读性比大量的FOR,IF好很多,且易于维护。
2.数据库的性能比自己手撸的性能好,且能自动处理缓存。
多台机器并行计算严重降低吞吐量,实际使用中一般不会这样做。

收获园豆:5
56180825 | 园豆:1365 (小虾三级) | 2020-09-06 22:45
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册