![]() |
1
12
What are the most common SQL anti-patterns? 你已经击中反模式1。 更好的方法是提供字段列表。获取快速字段列表的一种方法是
如果你想从这个查询中创建一个视图,使用select*会给你带来更多的麻烦。SQL Server在创建视图时捕获列列表。如果您编辑底层表,而不重新创建视图——您注册时遇到了麻烦(我遇到了这种性质的生产问题——视图是针对不同数据库中的表的)。 |
![]() |
2
13
您不应该在生产代码中选择“*”(好吧,几乎不应该选择“*”,但是它被证明是合理的时间可以很容易地计算出来)。 |
![]() |
3
3
据我所知,你必须避免
|
![]() |
4
1
您的SQL方言支持撰写吗?compose去掉了在equijoin上使用的列的额外副本,就像示例中的那个一样。 |
![]() |
5
1
正如其他人所说,select*是一个坏消息,特别是如果将其他字段添加到要查询的表中。您应该从表中选择所需的确切字段,并且可以对具有相同名称的字段使用别名,也可以只使用table.columnname。 |
![]() |
6
1
不要使用*。使用这样的东西:
|
![]() |
7
0
这是正确的,列出您想要的字段(在SQL Server中,您可以从对象浏览器中将它们拖动过来,这样就不必全部键入)。顺便说一下,如果您的特定查询不需要某些字段,请不要列出它们。这会给服务器带来额外的工作,并消耗额外的网络资源,当您的系统运行一天数千次时,这可能是导致性能不佳的原因之一。 至于它是一个维护问题,如果使用查询的应用程序部分会受到这些字段的影响,那么您只需要添加这些字段。如果您不知道新字段会有什么影响,或者需要在哪里添加它,则不应该添加该字段。另外,通过使用select*意外地添加新文件也会导致维护问题。创建性能问题以避免进行维护(您可能根本不需要进行维护,因为列更改应该很少(如果不需要查看您的设计),这是非常短视的。 |
![]() |
8
0
最好的方法是指定查询中所需的确切字段。你不应该使用
使用方便
您应该只返回查询中您真正想要的数据,并按照您想要的确切顺序进行指定。这样,即使向表中添加字段或更改表中字段的顺序,结果看起来也完全相同。 详细说明确切的输出是一点工作量,但从长远来看,它通常是有回报的。当您进行更改时,只有您实际更改的内容会受到影响,您不会得到破坏您甚至不知道受到影响的代码的级联效果。 |
![]() |
GuillaumeRZ · 创建视图:MySQL内部联接别名 6 年前 |
![]() |
Aakash Singh · 查询加载数据花费的时间太长 6 年前 |
![]() |
BCH · 从Select更新-语法和概念检查(mySQL) 6 年前 |
![]() |
David · 在中使用Sql server 7 年前 |
![]() |
Jason Coigny · 组合多个sql语句 7 年前 |
![]() |
J. Wolf · 如何内部联接3个表? 7 年前 |
![]() |
WoodChuckChuck · 通过VBA将查询连接到DBF 7 年前 |
![]() |
C. Ball · 如何使SQL内部联接绕过表? 7 年前 |