`

提高查询效率

阅读更多

 

原来的:

 List<Convention> conventions = test2Boy.getConventions();
            for (Convention convention : conventions) {
                //因为在html中\n不会换行,所以要把\n转化为br
                convention.setAnswer(ConventionUtil.convertBr(convention.getAnswer()));
                VoteLog voteLogTmp=this.voteLogDao.get( "user.id", user2.getId(),"convention.id",convention.getId());
                if(null!=voteLogTmp){
                    convention.setHasStar(true);
                }
            }

 conventions 有多少个元素,就得执行多少次sql语句

优化:

 List<Convention> conventions = test2Boy.getConventions();
            int size=conventions.size();
            Object[]objects=new Object[size];
            for (int i=0;i<size;i++){
                Convention convention=conventions.get(i);
                objects[i]=convention.getId();
            }
            List voteLogTmps=this.voteLogDao.getList("user.id", user2.getId(),"convention.id",objects);
            int voteLogSize=voteLogTmps.size();
            for (int j=0;j<voteLogSize;j++){
                VoteLog voteLogTmp=(VoteLog)voteLogTmps.get(j);
                Convention convention=voteLogTmp.getConvention();
                if(null!=convention){
                    convention.setHasStar(true);
                }
            }

 

执行的sql语句为:

/* criteria query */ select
        this_.id as id1_8_2_,
        this_.conventionId as conventi4_8_2_,
        this_.status as status2_8_2_,
        this_.userId as userId5_8_2_,
        this_.vote_time as vote3_8_2_,
        convention2_.id as id1_2_0_,
        convention2_.answer as answer2_2_0_,
        convention2_.pic as pic3_2_0_,
        convention2_.stars as stars4_2_0_,
        convention2_.status as status5_2_0_,
        convention2_.update_time as update6_2_0_,
        user3_.id as id1_7_1_,
        user3_.email as email2_7_1_,
        user3_.level as level3_7_1_,
        user3_.nickname as nickname4_7_1_,
        user3_.password as password5_7_1_,
        user3_.potrait as potrait6_7_1_,
        user3_.username as username7_7_1_ 
    from
        t_vote_log this_ 
    left outer join
        t_convention convention2_ 
            on this_.conventionId=convention2_.id 
    left outer join
        t_user user3_ 
            on this_.userId=user3_.id 
    where
        this_.userId=? 
        and this_.conventionId in (
            ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?
        )

 

 

 

 

 

分享到:
评论

相关推荐

    Oracle提高查询效率的方法

    "Oracle 提高查询效率的方法" Oracle数据管理系统作为一个强大的关系型数据库管理系统,具有高效、可靠、可扩展的特点。但是,随着数据量的增加和复杂查询的增加,查询效率可能会下降。因此,提高查询效率是 ...

    30个提高数据库查询效率方法总结笔记

    知识点:索引的作用是缩小扫描的范围,从而提高查询效率。但是,索引也可以导致插入、更新和删除操作变慢,因此需要合理地设计索引。 2. 应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用...

    SQL Server查询性能分析与查询效率提高.pdf

    索引是数据库中提高查询效率的重要工具,它可以大幅度减少数据检索所需的时间。然而,索引并非万能,一个不恰当的索引设置可能会导致性能下降。在SQL Server中,索引分为聚集索引(CLUSTERED INDEX)和非聚集索引...

    在一个千万级的数据库查寻中,如何提高查询效率?

    提高查询效率的策略 在一个千万级的数据库查寻中,提高查询效率是非常重要的。以下是提高查询效率的一些策略: 数据库设计方面 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列...

    oracle 性能优化 加快查询效率

    - **连接顺序的影响**:Oracle按照从右到左的顺序处理FROM子句中的表名,因此,选择记录数最少的表作为基础表可以显著提高查询效率。 - **条件排序**:在WHERE子句中,应先放置那些可以过滤掉最大数量记录的条件,...

    如何用索引来提高查询效率[借鉴].pdf

    如何用索引来提高查询效率 索引是数据库查询优化的重要手段之一。当查询结果仅为一行或很少几行时,利用索引进行查询可以大大提高效率。相比之下,如果没有索引,查询则只能顺序扫描整个表。在OLTP环境下,事务处理...

    提高查询效率的oracle索引优化策略探析.pdf

    另外,索引组织表(Index-Organized Table, IOT)是提高查询效率的有效手段。IOT将数据存储在索引结构中,直接通过索引进行数据访问,减少了访问表数据的步骤,从而加快查询速度。 综上所述,优化Oracle索引的关键...

    提高数据库查询效率

    - **使用变长字段**:对于非固定长度的数据,使用VARCHAR/NVARCHAR等变长字段可以节省存储空间,同时提高查询效率。 3. **临时表与表变量的应用**: - **临时表与表变量的使用**:对于频繁使用的数据集,可以使用...

    sql查询优化(提高MySQL数据库查询效率的几个技巧)

    * 使用存储过程:使用存储过程可以将频繁查询的操作封装起来,提高查询效率。 * 优化数据库结构:优化数据库结构,例如,使用合适的数据类型,优化表结构等。 提高 MySQL 数据库查询效率需要从多方面入手,使用 ...

    提高Oracle数据库查询效率

    在Oracle数据库管理与优化领域,提高查询效率是至关重要的一个环节。这不仅能够显著提升应用程序的性能,还能减少数据库服务器的负载,从而为用户提供更流畅的服务体验。本文将结合提供的SQL示例,深入探讨如何通过...

    怎样提高数据库查询效率

    13. 很多时候用 exists 代替 in 是一个好的选择,因为 exists 可以减少查询次数,提高查询效率。 14. 并不是所有索引对查询都有效,SQL 是根据表中数据来进行查询优化的,当索引列有大量数据重复时,SQL 查询可能...

    提高数据库查询效率的实用方法

    为了提高查询效率,应该尽可能避免使用全表扫描。例如,在使用`WHERE`子句时,应尽量使用条件筛选来缩小搜索范围,避免使用`ORDER BY`而没有相应的索引支持等。例如: - 错误示例:`SELECT id FROM t WHERE num IS ...

    提升MYSQL查询效率的10个SQL语句优化技巧.doc

    不同的存储引擎有不同的优缺,选择合适的存储引擎可以提高查询效率。 7. Avoid using SELECT \* 使用 SELECT \* 可能会导致查询效率下降,因为它需要扫描整个表来获取所有的列。 8. 使用索引来提高查询效率 索引...

    怎样提高数据库查询效率.doc

    1. 对查询进行优化,将尽量避免全表扫描,在where和order by子句中涉及的列上建立索引,提高查询效率。 数据库查询效率的关键是索引的使用,索引可以大大提高查询速度。在where和order by子句中涉及的列上建立索引...

    提高Oracle中SQL的执行效率

    为了提高查询效率,应当选择记录条数最少的表作为基础表(driving table)。当涉及三个或以上表的连接查询时,应考虑将被其他表引用的表作为基础表,这类表被称为交叉表(intersection table)。 #### 2. WHERE子句...

    运用数据库优化器提高SQL查询效率.pdf

    在实际应用中,数据库优化器的应用非常广泛,如在数据仓库、数据挖掘、商业智能等领域都需要使用数据库优化器来提高查询效率。因此,掌握数据库优化器的使用是非常重要的。 数据库优化器是提高SQL查询效率的重要...

    sql查询效率

    ### SQL查询效率提升详解 #### 一、理解SQL查询优化的重要性 ...通过遵循上述建议并结合实际情况灵活应用,可以显著提高查询效率,进而改善整个系统的性能。在实践中不断尝试和优化,是提升SQL查询效率的关键。

    合理创建和使用索引 提高Oracle查询效率.pdf

    它可以大大提高查询效率,减少I/O操作。索引可以是B+树索引、簇索引、散列簇索引、反序索引、位图索引和函数索引等多种类型。 B+树索引是Oracle中最常用的索引类型。它的特点是所有叶节点都具有相同的深度,因此...

    怎样提高数据库的查询效率

    1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id ...

    在一个千万级的数据库查寻中,如何提高查询效率?.zip

    在处理千万级甚至更大规模的数据库时,查询效率至关重要,因为低效的查询可能导致系统响应时间过长,用户体验下降,甚至服务器资源耗尽。要优化此类数据库的查询性能,可以采取以下策略: 1. **索引优化**:索引是...

Global site tag (gtag.js) - Google Analytics