业务代码中SQL编写应遵循怎样的原则?

1个回答

写回答

eeeeeavk

2026-02-18 04:34

+ 关注

Java
Java

我们大概都会认可这样一个观点:在绝大多数开发工作里,其实就是框架加上业务。实际上,绝大多数程序员都期望自己写出来的代码无比优雅,就像诗一样。但很可惜的是,在编写业务代码的时候,很难达到这种境界。简单直白地说,在前后端分离的情形下,你所写的代码基本上就是一个个接口。在绝大多数情况下就会面临这样一个问题:你是想要有好多条相似的SQL语句,还是希望一条类似的SQL语句能在很多地方被使用?写Java的人大都知道MyBatisPlus吧,谁敢说selectById这个方法不好用?那些说这个方法增加了I/O的兄弟就别纠结了,就拿你做的那种后台管理系统来说,要求不用那么高,就算你用一条SQL把所有数据都查出来,效率也不会很低的。要是你非得在这个问题上较真儿,那我倒想问个问题:如果有两个方法,一个要用到表中的三个字段,另一个要用到表中的七个字段,而表中总共有十个字段,并且查询条件都是一样的,你会怎么做?你怎么做我不清楚,但我肯定会用SELECT *。万一之后还有一个方法需要用到九个字段。别太天真了,小傻瓜。如果你的一条SELECT *查询真的很慢,那你首先应该考虑的是索引有没有被使用、是不是频繁出现锁表现象、带宽是否足够、硬盘是不是固态硬盘,而不是去考虑这条SQL多返回了几个字段。在面试的时候可别这么说,面试的标准答案是:当然是用到哪个字段就查询哪个字段了,不然平白增加I/O开销总归是不好的。记住,面部表情一定要表现出对SELECT *不屑一顾并且很鄙夷的样子。我曾经有一次面试,那天脑子突然一抽,就说了句:当然是用SELECT *了,什么项目啊,还值得我一个字段一个字段地写SQL。当时那个面试官老大爷立刻就露出了鄙夷的表情。我心想,完了,当时就知道结果了。然后他接下来的问题我就直接敷衍,跟他扯了一会儿就走了,哈哈哈哈。

举报有用(0分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号