SQL 是开发和查询数据库的主要语言,但它有一些怪癖。在我的上一篇文章中,我分享了 7 个需要避免的 SQL 错误。现在,让我们来看看编写更快的 SQL 查询的 9 个最佳实践。
更快 SQL 查询的 9 个最佳实践
-
仅检索您需要的列
-
使用 CASE 而不是 UPDATE 进行条件列更新
-
将大表查询保持在最低限度
-
预先准备您的数据
-
批量执行删除和更新
-
使用临时表提高游标性能
-
使用表值函数而不是标量函数
-
使用分区来避免大量数据移动
-
使用存储过程来提高性能,使用 ORM 来提高便利性
仅检索您需要的列
一个常见的 SQL 习惯是在查询上使用SELECT *,因为列出所需的所有列是很乏味的。另外,有时这些列可能会随着时间的推移而改变,所以为什么不以简单的方式做事呢?
但是,如果您查询具有一百个或更多列的表上的所有列,会发生什么情况?这些庞然大物在野外以令人沮丧的规律性出现,并且并不总是能够将它们重新设计为更理智的模式。有时,驯服这头野兽的唯一方法是选择列的子集,这可以防止其他查询资源匮乏。
在对查询进行原型设计时使用是可以的SELECT *,但是任何进入生产的内容都应该只请求实际使用的列。
使用 CASE 而不是 UPDATE 进行条件列更新
开发人员经常做的其他事情是UPDATE ... WHERE根据另一列的值设置一列的值,例如UPDATE Users SET Users.Status="Legacy" WHERE Users.ID<1000. 这种方法简单直观,但有时会增加不必要的步骤。
例如,如果您将数据插入表中,然后使用UPDATE它来更改它,就像我刚才所