【SQL】加快SQL查询的九种优秀实践

1.只检索需要的列

对于那些所谓的数据库开发老司机而言,他们会有一个常见的SQL习惯:在编写查询代码时,频繁地使用SELECT *,一次性列出所有可能需要的数据列。显然,如果查询一个存储了一百多列的数据表的所有列,您可以想象会发生什么?毕竟在真实的系统应用环境中,这样的数据表屡见不鲜,而且它们并非总是可以通过重新设计和优化,来合理化其结构。那么,您是否考虑过采取简单点的方法呢?其实,我们可以只选择列的子集,以避免在查询过程中占用不必要的资源,并提高执行的效率。

当然,在进行查询的原型设计时,使用SELECT *是没有太大问题的,但是一旦进入生产阶段,具体的查询就应该只请求那些实际将会使用到的数据列。

2.使用CASE代替UPDATE进行有条件的列更新

在编程过程中,开发人员也会经常使用UPDATE ...WHERE,来根据数据表中的某一列的值,设置另一列的值。例如,UPDATE Users SET Users.Status="遗留" WHERE Users.ID<1000。不可否认,这种方法既简单又直观,但是它有时也会增加不必要的步骤。例如,如果您需要先向某个表中插入数据,然后使用UPDATE来更改数据,那么这便是两个独立的事务。不过,当你有数百万行数据时,此类“徒增”的额外事务就会产生大量不必要的操作。

对于一些大规模操作而言,更好的解决方案是:在查询中使用内联CASE语句,在插入操作过程中设置列的值。如此,我们便可以一次性地同时处理初始插入和修改数据了。

3.尽量减少大表查询

就系统开销而言,对于任何体量数据表的查询

相关推荐

  1. SQL加快SQL查询优秀实践

    2024-01-07 16:38:04       59 阅读
  2. 加速 SQL 查询 9 方法

    2024-01-07 16:38:04       59 阅读
  3. SQL实现模糊查询方法总结

    2024-01-07 16:38:04       49 阅读
  4. SQL查询优化方案

    2024-01-07 16:38:04       36 阅读
  5. OceanBaseSQL 优化实践: NOT IN 子查询

    2024-01-07 16:38:04       25 阅读
  6. SQL笔记 -- 查询优化

    2024-01-07 16:38:04       48 阅读
  7. ORACLE 查询SQL优化

    2024-01-07 16:38:04       31 阅读
  8. SQL-慢查询定位及优化

    2024-01-07 16:38:04       31 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-07 16:38:04       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-07 16:38:04       106 阅读
  3. 在Django里面运行非项目文件

    2024-01-07 16:38:04       87 阅读
  4. Python语言-面向对象

    2024-01-07 16:38:04       96 阅读

热门阅读

  1. 38 调优kafka

    2024-01-07 16:38:04       62 阅读
  2. python贪吃蛇

    2024-01-07 16:38:04       57 阅读
  3. 前端算法之动态规划

    2024-01-07 16:38:04       69 阅读
  4. 什么是Selinux

    2024-01-07 16:38:04       60 阅读