我见过很多人声称您应该在选择查询中专门为想要的每一列命名。
假设我仍然要使用所有列,为什么我不使用SELECT *
?
即使考虑问题* SQL查询-从视图选择或从视图*选择col1,col2,’colN,我也不认为这是完全相同的副本,因为我正从略有不同的观点着手解决这个问题。
我们的原则之一是在优化之前就不进行优化。考虑到这一点,在被证明是资源问题或架构几乎是固定的之前,似乎SELECT *
应该使用 首选的
方法。众所周知,只有完成开发后,这种情况才会发生。
就是说,有一个最重要的问题不使用SELECT *
吗?
不进行过早优化的报价的本质是编写简单明了的代码, 然后 使用探查器指出热点,然后可以对其进行优化以提高效率。
当使用select *时,将无法进行概要分析,因此,您没有在编写清晰明了的代码,这与引用的精神背道而驰。select *
是反模式。
因此,选择列并不是过早的优化。我头上掉了几件事....
结果是使用select *
…
编写正确的SQL与编写脚本一样容易Select *
。因此,真正的懒惰者会编写适当的SQL,因为他们不想重新访问代码,而是想记住自己在执行操作时在做什么。他们不想向DBA解释每一段代码。他们不想向客户解释为什么应用程序像狗一样运行。
在哪些情况下,应该使用? 是否只是为了合法性问题? 如果是,那么问题是什么? 因为我仍然使用开发我的所有项目
问题内容: 当我尝试运行程序时,出现以下错误 请帮忙 问题答案: 从Javadoc: 如果Java虚拟机找不到声明为native的方法的适当本机语言定义,则抛出该异常。 这是与JNI相关的错误。loadJacobLibrary试图加载名为jacob-1.14.3-x86的本机库,但在java.library.path定义的路径上找不到该库。启动JVM时,应将此路径定义为系统属性。例如 在Windo
在这里抛出RejectedExecutionException是否有其他原因? java.util.concurrent.RejectedExecutionException:任务java.util.concurrent.FutureTask@4194a5f0被java.util.concurrent.ThreadPoolExecutor@41a36e90拒绝[终止,池大小=0,活动线程=0,排队
问题内容: 上下文: 我为一整天整天攻击HTML,Javascript和CSS而 忽略 诸如jQuery( 或其他等效的辅助框架 )之类的工具而 拒绝 使用它们的前端开发人员感到惊讶。我不是在谈论JavaScript专家,而是在乔生产开发人员的日常讨论中谈论。我收到了很多像借口或个人观点的论据,但我认为这些论点没有任何技术上的优点,我想确保自己没有遗漏任何东西。 问题: 不使用jQuery的一些经
问题内容: 关于Java的InterruptedException有一些有趣的问题和答案,例如Java中的InterruptedException 的原因和处理InterruptedException。但是,它们都没有告诉我InterruptedException的可能来源。 像SIGTERM,SIGQUIT,SIGINT这样的OS信号呢?在命令行上按CTRL-C是否会产生InterruptedE
问题内容: 与Cipher合作时,我观察到以下内容。 加密码: 解密代码: 运行Decrypt代码时,出现IllegalBlockSizeException(输入长度必须为16的倍数)。 但是如果我将解密代码更改为 它工作正常。我知道这是有规律的。所以我以为是因为我没有提到填充。所以我尝试在加密过程中提供模式和填充, 加密码: 解密代码: 但是它失败,并带有IllegalBlockSizeEx