当前位置: 首页 > article >正文

数据库入门级SQL优化

1. SELECT * FROM users;

优化原因:使用SELECT *会选择所有列,可能导致不必要的数据传输。应只选择需要的列,例如:

SELECT id, name FROM users;

2. WHERE age > 30;

优化原因:如果age字段没有索引,查询速度会慢。可以考虑在age列上创建索引,或者使用范围查询结合索引。

3. SELECT name FROM users WHERE name LIKE '%john%';

优化原因:前缀通配符会导致全表扫描。可以重构查询或使用全文索引。

4. INSERT INTO orders (id, user_id, product_id) VALUES (1, 2, 3);

优化原因:在高并发情况下,批量插入能提高性能。可以改为:

INSERT INTO orders (id, user_id, product_id) VALUES (1, 2, 3), (2, 3, 4);

5. SELECT * FROM orders WHERE user_id = 1 ORDER BY created_at;

优化原因:如果没有索引,排序会影响性能。应在user_idcreated_at上创建复合索引。

6. UPDATE users SET last_login = NOW() WHERE id = 1;

优化原因:频繁更新同一行会导致行锁。可以考虑批量更新,或者在业务逻辑中减少操作频率。

7. DELETE FROM users WHERE created_at < '2020-01-01';

优化原因:全表扫描会影响性能。可使用分区表或者在created_at上创建索引。

8. SELECT COUNT(*) FROM orders;

优化原因:全表扫描可能很慢。可以使用物化视图或维护一个单独的计数表。

9. SELECT * FROM products WHERE category_id IN (1, 2, 3);

优化原因:如果category_id没有索引,查询会很慢。应在category_id上创建索引。

10. JOIN多个表时没有使用ON条件

SELECT * FROM orders JOIN users;

优化原因:缺失ON条件会导致笛卡尔积,产生大量不必要的数据。应明确指定连接条件。


http://www.kler.cn/a/464220.html

相关文章:

  • TI毫米波雷达原始数据解析之Lane数据交换
  • 三甲医院等级评审八维数据分析应用(五)--数据集成与共享篇
  • 个人健康信息系统|Java|SSM|VUE| 前后端分离
  • 个人交友系统|Java|SSM|JSP|
  • 四、VSCODE 使用GIT插件
  • B3842 [GESP202306 三级] 春游
  • 【可实战】测试用例组成、用例设计方法、用例编写步骤、测试用例粒度、用例评审(包含常见面试题)
  • 【人工智能机器学习基础篇】——深入详解深度学习之复杂网络结构:卷积神经网络(CNN)、循环神经网络(RNN)、生成对抗网络(GAN)等概念及原理
  • 免费下载 | 2025年中国智慧园区行业发展白皮书
  • kubernetes学习-Service
  • docker Error response from daemon
  • react 的性能优化
  • 小波滤波器处理一维信号-附Matlab源代码
  • Android原生Widget使用步骤
  • 2、redis的持久化
  • 源码分析之Openlayers中MultiPolygon类
  • 红队-网络基础(中-蓝队基础与网络七层杀伤链)
  • C++ 基础思维导图(一)
  • Poi-tl实现图片自定义宽高、固定高度宽度自适应、固定宽度高度自适应
  • 【内含代码】Spring Boot整合深度学习框架DJL
  • 广西大数据局:数聚政府、利企惠民(广西数字政府建设内容、管理机制、应用场景)
  • gpt优化事件处理速度
  • Apache Commons Pool 配置参数详细解释
  • 太速科技-132-4路14bit 125Msps PCIe采集卡
  • CentOS7下的 OpenSSH 服务器和客户端
  • (二)当人工智能是一个函数,函数形式怎么选择?ChatGPT的函数又是什么?