最近因为项目遇到问题。需要优化,才100个人在线的样子,就已经是抗不住了。记录下最近的优化内容,首先把大量的sql存储过程从数据库中搬到java程序中,为了调试和优化方便。然后首先优化的是一个经常出现的sql语句,里面用了大量的子查询,例如,select where in我们的做法是把大量的子查询条件抽离,用另外的sql去查询,然后使用程序组合。
最终会变成这样,select where in (xxx,xxx,xx,xx,xx,xx)
当子查询条件太大,例如大于500个时,可以试着分成多个去执行。包括全部update也是一样,可以分成多个去执行。
而在实际环境中,可能会大量用 join 进行表关联,这点也是不推荐使用,不管是left join 还是 inner join。
另一个优化技巧应用于, 查询是否有某条记录,如有,并在执行完操作后进行删除,
优化为: 删除某条记录,如果有影响记录数,则执行。减少了查询这一步。
delete from task_guide where uid=u_id and task_id=t_id;
set affected_rows = (SELECT ROW_COUNT());
if affected_rows != 0 then
end if;
而另一种关于插入的情况也是一样,查询是否有相同记录,如没有,则进行插入。有则返回已存在。
优化为,插入某条记录,如出错,则返回已存在。充分利用出错信息来进行判断。
分享到:
相关推荐
在SQL优化领域,联表查询(也称为JOIN查询)是数据操作的重要部分,尤其是在大型数据库系统中。当需要从多个表中提取相关数据时,联表查询就显得尤为重要。本篇将深入探讨“sql优化”与“左连接查询”的相关知识点,...
- **使用子查询代替连接**:在某些情况下,使用子查询代替连接可以减少 I/O 操作次数,从而提高查询速度。 - **GROUP BY 和 HAVING 子句的优化**:GROUP BY 和 HAVING 子句通常会增加查询的复杂度和执行时间,应该...
理解这种等价性可以帮助找到更高效的形式,比如使用JOIN代替子查询,或者利用聚合函数简化计算。 6. **深入理解需求**: 高级的SQL优化往往源于对业务需求的深刻理解。通过深入了解业务逻辑,可以预见到潜在的性能...
- **减少子查询使用**:将复杂的子查询转换为连接操作或者使用物化视图等技术来减少查询复杂度。 - **合理使用JOIN操作**:正确使用内连接(`INNER JOIN`)、外连接(`LEFT JOIN`, `RIGHT JOIN`)等连接方式,确保只获取...
本篇文章将深入探讨Oracle中的SQL优化技术,包括理解执行计划、索引优化、连接优化、子查询优化、缓存策略以及SQL调优工具的使用。 1. **理解执行计划** - **执行计划**:在Oracle中,每一条SQL语句都会有一个执行...
3. **优化子查询**:确保子查询能够快速执行,比如通过索引优化等方式提高查询速度。 4. **避免过度使用子查询**:除非必要,否则应尽量使用连接查询来代替子查询,以提高查询效率。 总之,子查询是一种非常强大的...
在SQL Server数据库管理系统中,关系查询处理是核心功能之一,它是数据检索的基础,涉及SQL语句的解析、执行计划的生成以及数据的检索与返回。本教程将深入探讨这一主题,对准备考取高级数据库管理认证的同学极具...
尽管给定描述并未提供具体的信息,但从标题“关于SQL优化的电子书”及标签“sql优化”,结合部分内容可以看出,此电子书聚焦于SQL应用的优化技术。以下将深入解析与SQL优化相关的专业知识点: ### SQL优化的核心...
3. **查询重写**:学习如何改写SQL语句,使其更高效,例如避免子查询,使用JOIN替代子查询,或者使用聚合函数减少数据处理量。 4. **数据分区**:对于大数据量的表,可以采用分区技术,将数据分布在多个物理存储上,...
6. **优化子查询**:如果可能的话,应尽量避免使用子查询,因为它们通常比连接操作慢。如果必须使用子查询,则应考虑使用IN或EXISTS关键字代替。 7. **分区表**:对于非常大的表,可以考虑使用分区技术来提高查询...
本文还讨论了SQL查询思路优化的方法,包括使用EXISTS和IN代替子查询、使用索引、避免使用SELECT \*、使用合适的连接方式和避免使用OR条件等。这些方法可以提高查询速度,简化管理和提高数据库性能。 关键词:SQL...
1. 减少查询次数:通过联合查询、子查询优化和存储过程等方式,将多次数据库交互合并为一次,降低网络传输和数据库处理的压力。 2. 减小数据量:通过精确查询和使用LIMIT限制返回结果的数量,避免不必要的全表扫描...
### DB2之SQL优化浅析 #### 一、为什么要做SQL优化 在DB2数据库管理中,SQL优化是一项至关重要的工作。SQL语句是应用程序与数据库之间交互的主要方式,其性能直接影响到整体应用的响应速度及数据库服务器的负载。...
5. **SQL优化技巧**:这可能涉及重写SQL语句以减少资源消耗,比如使用连接操作而非子查询,或者避免在索引字段上使用否定条件。 6. **存储优化**:讨论表分区、分片、归档等策略,以提高读写效率和存储空间的管理。...
在大型数据集上,考虑使用子查询或临时表代替大范围的JOIN操作。 存储过程的使用可以改善性能,因为它们允许预编译的代码和结果缓存。然而,过度使用存储过程也可能导致维护复杂性增加。因此,合理使用存储过程,...
4. **子查询优化**:子查询有时会导致性能问题,可以通过关联子查询、临时表或连接操作进行重写,以提高效率。 5. **存储优化**:正确选择数据类型、设置合适的字段长度和存储格式,可以减少存储空间并提升I/O性能...
例如,使用内联函数和子查询可能比使用临时表和大型嵌套查询更为高效。 其次,索引策略对于提高查询速度至关重要。正确地为表的列创建索引可以极大地加快数据检索速度。非聚簇索引用于快速定位数据,而聚集索引决定...
1. **SQL基础**:包括SELECT语句的基本构造、JOIN操作、子查询以及聚合函数等,这些都是SQL优化的基础。 2. **索引优化**:索引是提升查询速度的关键,了解何时创建何种类型的索引(如B树索引、位图索引、函数索引...
- **使用联接代替子查询**:在某些情况下,使用联接操作可能比子查询更高效。 - **事务处理**: - **事务隔离级别**:根据应用需求选择合适的隔离级别。 - **锁定机制**:合理使用锁定来避免数据冲突。 通过...