怎么在多表查询中建立索引,实现效率的提高,谢谢。

问题描述

怎么在多表查询中建立索引,实现效率的提高,谢谢。

select s.id,s.name,p.price,m.name as clientname,m.register_address,z.img_source from cl_product_i18n s,cl_product n,t_mdm_client m,
cl_category_product_rel t,pr_price p,cl_product_address d,cl_product_image z
where s.id=p.product_id and s.id=z.product_id and d.product_id=s.id and t.product_id=s.id and n.id=s.id and m.id=n.merchant_id
and p.price_type='" + PriceTypeEnum.SALE_PRICE +"' and p.sale_channel=2 and t.catalog_id=150 and s.id='"+productId+"';

解决方案

每个表出现在条件中的字段上建索引。如果一个表同时用到多个字段,数据库支持索引包含就用包含(如下),否则就建在一个索引中。

    pr_price(product_id)包含(price_type,sale_channel)
    cl_category_product_rel(product_id)包含(catalog_id)

解决方案二:

增加索引提高查询效率

时间: 2024-12-09 12:39:25

怎么在多表查询中建立索引,实现效率的提高,谢谢。的相关文章

lucene.net 多表查询和建立索引

问题描述 lucene.net对数据库里多张表怎么建立索引和查询.求这样方面的思路或者代码 解决方案

Oracle中建立索引并强制优化器使用

当WHERE子句对某一列使用函数时,除非利用这个简单的技术强制索引,否则Oracle优化器不能在查询中使用索引. 通常情况下,如果在WHERE子句中不使用诸如UPPER.REPLACE 或SUBSTRD等函数,就不能对指定列建立特定的条件.但如果使用了这些函数,则会出现一个问题:这些函数会阻碍Oracle优化器对列使用索引,因而与采用索引的情况相比较,查询会花费更多的时间. 庆幸的是,如果在使用函数的这些列中包含了字符型数据,可以用这样一种方法修改查询语句,以达到强制性使用索引,更有效地运行查询

thinkphp中多表查询中防止数据重复的sql语句(必看)_php技巧

下面先来看看例子: table id name 1 a 2 b 3 c 4 c 5 b 库结构大概这样,这只是一个简单的例子,实际情况会复杂得多. select *, count(distinct name) from table group by name 结果: id name count(distinct name) 1 a 1 2 b 1 3 c 1 最后一 项是多余的,不用管就行了 tp2.0手册   搜索连贯操作 可看到相关的资料 SELECT cat_id, COUNT(*) AS

sql语句多表查询中聚合函数的使用问题

问题描述 sql语句多表查询中聚合函数的使用问题 表A,B,C. A表中有title,code, b表中为code,media_code;(均不为主键,code会有重复) c表中有media_code,shrink (media_code为主键) 我的目的为取出A表中的title和c表中的shrink 联立:A.code→B.code, B.media_code→C.media_code 代码如下 select title,shrink from tableA,tableC where medi

solr从pdf、office文档中建立索引

2015年05月28日 ⁄ hadoop ⁄ 评论数 1 使用solr从pdf.office文档中建立索引和从数据库中建立相似,只不过这里需要tika来解析这些文档.8.1 配置一个handler 这个handler首先要在solrConfig.xml中配置,如下所示:                   <requestHandler name="/dataimport"    class="org.apache.solr.handler.dataimport.Dat

Oracle数据库中建立索引的基本方法讲解_oracle

怎样建立最佳索引? 1.明确地创建索引 create index index_name on table_name(field_name) tablespace tablespace_name pctfree 5 initrans 2 maxtrans 255 storage ( minextents 1 maxextents 16382 pctincrease 0 ); 2.创建基于函数的索引 常用与UPPER.LOWER.TO_CHAR(date)等函数分类上,例: create index

oracle学习(六) 表查询中需要注意的一些问题

1.当在select语句中,同时使用where.group by和having子句时,它们的作用和执行顺序如下: (1)where用于筛选由from指定的数据对象 (2)group by用于对where的结果进行分组 (3)having用于对group by分组后的数据进行过滤 2.count(*)与count(columnName|columnIndex)的区别: count(*)会统计表中的null计算在内,而count(columnName|columnIndex)会忽略对应字段的null

如何在应用程序中建立索引

问题描述 我有个ListBox,当我输入某个字,怎样再ListBox中显示出相应的字段.与windows下的搜索功能类似.求解啊 解决方案 解决方案二: linq解决方案三: 你说的功能叫autosuggest(自动建议)或者autocomplete(自动完成),不是index(索引).你可以用前述关键字搜索.解决方案四: 搜索总列表,符合条件的添加到listbox解决方案五: 只知道数据里可以建立索引程序里也可以么?解决方案六: 非要放在数据库中吗?假如直接放在ListBox下中可以建立搜索.

怎么样将将查询出来的值获取之后作为再次多表查询条件?有要代码吗?谢谢

问题描述 只求动态插叙的SQL语句 在Ibatis中执行 谢谢 问题补充:将页面上多表的值获取到后台作为查询的条件(多表),在Ibatis中写SQL语句,那个动态语句怎么写更好更简单一些? 解决方案 <sql id="dynamic_where_query"> <!--here is your dynamic condition--> <isNotNull prepend="AND " property="client&quo