`
liaobuzhisi
  • 浏览: 71424 次
  • 性别: Icon_minigender_1
  • 来自: 佛山
文章分类
社区版块
存档分类
最新评论

优化orderby语句

 
阅读更多

数据库排序在很多业务系统都有这方面的硬性要求,但是很多情况下大数据表的排序查询很是缓慢,查了下资料,现在总结如下:

可以适当调大 sort_area_size 的值( 10240000=10m )

alter system set sort_area_size=10240000 scope=spfile;  

在10G中也可以直接调大PGA的最大值

alter system set pga_aggregate_target=512m scope=spfile ;

 

但这样做也只是提高了一点排序性能,还是达不到系统速度要求,查询要快,要见索引,所以我们帮排序字段建立上索引,但是要让orderby能调用到索引还需要一些严格的条件:

ORDER BY中所有的列必须包含在相同的索引中并保持在索引中的排列顺序.
ORDER BY中所有的列必须定义为非空.

当我们设好以后,orderby的速度变得很快,完全达到系统的要求,1张400万数据的表用时间排序只需要几十毫秒。

 

但是在实际应用中还是有些问题,还需进一步研究。

分享到:
评论

相关推荐

    Mysql优化order by语句的方法详解

    本文将深入探讨如何优化ORDER BY语句,以提高查询性能。 MySQL有两种主要的排序方式: 1. **通过有序索引顺序扫描**:当查询涉及的字段具有相应的有序索引时,MySQL可以直接从索引中获取已排序的数据,无需额外的...

    mysql中提高Order by语句查询效率的两个思路分析

    在这篇文章中,笔者就谈谈提高Order By语句查询效率的两个思路,以供大家参考。 在MySQL数据库中,Order by语句的使用频率是比较高的。但是众所周知,在使用这个语句时,往往会降低数据查询的性能。因为可能需要对...

    MySQL利用索引优化ORDER BY排序语句的方法

    创建表&创建索引 create table tbl1 ( id int unique, sname varchar(50), index tbl1_index_sname(sname desc...通过索引优化来实现MySQL的ORDER BY语句优化: 1、ORDER BY的索引优化 如果一个SQL语句形如: SELECT

    18 SQL优化--其他SQL的优化.doc

    #### 优化 ORDER BY 语句 - 避免混合使用 `DESC` 和 `ASC` 排序。 - 确保用于排序的列被索引。 - 如果排序列不是查询条件的一部分,可能会导致效率降低。 #### 优化嵌套查询 - 使用 JOIN 替代子查询,以提高查询...

    MySQL 通过索引优化含ORDER BY的语句

    MySQL数据库在处理含`ORDER BY`的SQL语句时,索引优化是非常关键的一环,因为这直接影响到查询性能。以下是一些关于如何利用索引来优化`ORDER BY`语句的知识点: 1. **合理创建索引**:索引可以显著提高数据读取...

    2023 Java面试真题及详解

    1 mysql使用innodb引擎,请简述mysql索引的最左前缀如何优化orderby语句。 2 JVM 内存模型中,为什么要区分新生代和年老代,对于新生代,为什么又要区分eden 区survial区? 3 典型的JDBC程序按()顺序编写( 排序) 4 请...

    SQL语句优化原则.pdf

    4. ORDER BY语句的优化。ORDER BY语句用于决定查询结果的排序顺序。如果在ORDER BY子句中使用了非索引项或者包含计算表达式,将降低查询效率。为提升性能,应重新编写ORDER BY语句以使用索引,或者为相关列建立额外...

    MySQL数据库开发、优化与管理维护.pdf

    - **优化ORDER BY语句**:考虑使用索引。 - **优化JOIN语句**:优化连接条件和顺序。 - **MySQL如何优化OR条件**:通过调整条件顺序可以提高查询效率。 - **查询优先还是更新(INSERT、UPDATE、DELETE)优先**:...

    MySQL中(JOIN/ORDER BY)语句的查询过程及优化方法

    在MySQL查询语句过程和EXPLAIN语句基本概念及其优化中介绍了EXPLAIN语句,并举了一个慢查询例子: 可以看到上述的查询需要检查1万多记录,并且使用了临时表和filesort排序,这样的查询在用户数快速增长后将成为噩梦...

    MySQL技术资料来自网易的经验总结

    - **优化ORDER BY语句**:给出优化ORDER BY语句的策略。 - **优化JOIN语句**:介绍优化JOIN操作的技巧。 - **MySQL如何优化OR条件**:探讨如何优化含有OR条件的SQL语句。 - **查询优先还是更新(INSERT、UPDATE...

    MySQL Order by 语句用法与优化详解

    MySQL的`ORDER BY`语句是SQL查询中用于对结果集进行排序的关键部分,它可以按照指定的列或列组合对数据进行升序(`ASC`)或降序(`DESC`)排列。在处理大量数据时,优化`ORDER BY`对于提高查询效率至关重要。 首先,...

    Mysql占用过高CPU时的优化手段(必看)

    Mysql占用CPU过高的时候,该从哪些方面下手进行优化? 占用CPU过高,可以做如下考虑: ...比如优化insert语句、优化group by语句、优化order by语句、优化join语句等等; 3)考虑定时优化文件及索引; 4)定期

    SQL常用优化脚本,优化SQL语句

    buffer_gets, disk_reads, parse_calls FROM V$SQLAREA WHERE buffer_gets > 10000000 OR disk_reads > 1000000 ORDER BY buffer_gets + 100*disk_reads DESC`此脚本用于识别数据库中资源消耗最大的SQL语句,通过`...

    Oracle语句优化规则汇总

    6. **优化GROUP BY和ORDER BY**:如果可能,先对数据进行预排序,再进行GROUP BY或ORDER BY操作。同时,考虑为GROUP BY的列创建索引。 7. **避免使用DISTINCT**:DISTINCT操作会增加处理时间,尽量通过其他方式消除...

    最新整理的常用sql语句及优化大全

    更高级的查询包括`WHERE`子句来过滤结果,`GROUP BY`进行分组,`ORDER BY`进行排序,以及`HAVING`来对分组后的数据进行过滤。 2. **数据插入**:`INSERT INTO`语句用于向表中添加新的记录,如`INSERT INTO table_...

    sql语句的优化

    1. **建立合适的索引**:在WHERE子句和ORDER BY子句中涉及到的列上建立索引,可以极大提高查询速度。例如,在执行如下查询时: ```sql SELECT id FROM t WHERE num = 10; ``` 如果`num`列上有索引,则可以快速...

    网易技术部MySQL中文资料

    - **11.4.4 优化order by语句** - 探讨了`ORDER BY`的性能瓶颈及其解决方案。 - **11.4.5 优化join语句** - 分析了连接查询的优化策略,如使用索引覆盖、避免使用子查询等。 - **11.4.6 MySQL如何优化or条件** ...

Global site tag (gtag.js) - Google Analytics