首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

到底为什么建议使用SELECT * ?

“不要使用SELECT *”几乎已经成为了使用MySQL的一条金科玉律,就连《阿里Java开发手册》也明确表示不得使用*作为查询的字段列表,更是让这条规则拥有了权威的加持。...但是我们总得知道为什么建议直接使用SELECT *,本文从4个方面给出理由。 1....那使用SELECT *会不会使MySQL占用更多的内存呢?...Server层而言,并非是在内存中存储完整的结果集之后一下子传给客户端,而是每从存储引擎获取到一行,就写到一个叫做net_buffer的内存空间中,这个内存的大小由系统变量net_buffer_length来控制...既然使用了索引,为了避免重蹈无法使用覆盖索引的覆辙,我们也应该尽量不要直接SELECT *,而是将真正用到的字段作为查询列,并为其建立适当的索引。

79620

为什么建议你使用SELECT *

作者: 蝉沐风作者网站:www.chanmufeng.com“不要使用SELECT *”几乎已经成为了MySQL使用的一条金科玉律,就连《阿里Java开发手册》也明确表示不得使用*作为查询的字段列表,更是让这条规则拥有了权威的加持...但是我们总得知道为什么建议直接使用SELECT *,本文从4个方面给出理由。1....那使用SELECT *会不会使MySQL占用更多的内存呢?...Server层而言,并非是在内存中存储完整的结果集之后一下子传给客户端,而是每从存储引擎获取到一行,就写到一个叫做net_buffer的内存空间中,这个内存的大小由系统变量net_buffer_length来控制...既然使用了索引,为了避免重蹈无法使用覆盖索引的覆辙,我们也应该尽量不要直接SELECT *,而是将真正用到的字段作为查询列,并为其建立适当的索引。

2.4K164

你可能不知道的 JS 特性:可选

今天我们来介绍一个你可能没见过的 JS 新特性,目前处于 Stage 3 阶段,它叫作 可选链(optional chaining),它可能解决很多人都面对过的痛点,让我们来了解下~ 为什么我们需要它...const personFirstName = person.details.name.firstName || 'stranger'; } 可以看到为了访问某个人的 firstName,代码变得非常优雅...解决方案 可选链 就是为了解决这个问题而诞生的。 用法 可选链在语法上可能看起来比较陌生,但是用了几次之后你就会很容易适应这种写法。 const personFirstName = person?....,从 JS 层面,它表示如果 person 的值为 null 或者 undefined,就不会报错而返回 undefined,否则才继续访问后面的 details 属性。...感兴趣的小伙伴还不快尝试一下,如果嫌安装 babel plugin 太麻烦,直接使用 lodash 的 get 也不失为一种保守的选择~ 参考链接 JS new feature: Optional Chaining

98120

JS控制流程

break语句包含一个可选的标签,可允许程序摆脱一个被标记的语句。break语句需要内嵌在引用的标签中。被标记的语句可以是任何 块语句;不一定是循环语句。...与 break 语句的区别在于, continue 并不会终止循环的迭代,而是: 在 while 循环中,控制流跳转回条件判断; 在 for 循环中,控制流跳转到更新语句。...continue 语句可以包含一个可选的标号以控制程序跳转到指定循环的下一次迭代,而非当前循环。此时要求 continue 语句在对应的循环内部。...如果没有 case 子句相匹配,程序则会寻找那个可选的 default 子句,如果找到了,将控制权交给它,执行相关语句。若没有 default 子句,程序将继续执行直到 switch 结束。...也就是,你想让try语句中的内容成功, 如果没成功,你想控制接下来发生的事情,这时你可以在catch语句中实现。

7.3K10
领券