`
eyejava
  • 浏览: 1268350 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

在many-to-many的中间表中配置索引

阅读更多
<set name="cards" inverse="true" cascade="all,delete-orphan" table="ACCOUNT_CARD" fetch="join">
	<key column="ACCOUNT_ID"/>
	<many-to-many class="Card" foreign-key="fk_acctcard_cardid">
		<column name="CARD_ID" index="i_acctcard_cardid"></column>
	</many-to-many>
</set>

<set name="accounts" inverse="true" cascade="all,delete-orphan" table="ACCOUNT_CARD">
	<key column="CARD_ID" />
	<many-to-many class="Account" foreign-key="fk_acctcard_accountid" >
		<column name="ACCOUNT_ID" index="i_acctcard_acctid"></column>
	</many-to-many>
</set>


customer(1)-(n)account(n)-card(n)
三张表分别:30万,60万,90万记录
Select *
 From card a,Account b,account_card c ,customer d
  Where a.card_number = '4518100348128286' And a.Id=c.card_id And b.Id=c.account_id And d.Id=a.customer_id
  And b.customer_Id = d.Id

这个查询如果在中间表account_card上不加索引将需要10s钟才能完成,加上索引后0.046s就搞定了。当然card_number肯定是得有索引的。
分享到:
评论
3 楼 javadev 2007-04-29  
数据库不同,索引也不一样,DB2建立索引后,还得运行runstat命令才起作用。
2 楼 remanhu 2007-04-17  
索引是一把双刃剑,用的好可以带来很大的收益,用的不好简直就是恶梦,所以并不是说所有地方都能使用,还是要实事求是的用
1 楼 mercyblitz 2007-04-12  
索引会大大的提高速度!

相关推荐

    hibrenate xml 配置 映射

    在XML配置中,这通常通过`&lt;one-to-one&gt;`标签实现。例如,在`Person`实体中引用`Address`实体: ```xml &lt;one-to-one name="address" class="com.example.Address"/&gt; ``` #### 2.1.2 一对一主键单向关联 在这种关联...

    mysql may to many

    标题“mysql may to many”指向的是MySQL中的多对多关联关系,这是一种常见的数据库表之间的关联类型,用于描述两个表之间可以有多个匹配项的情况。 在数据库设计中,数据关系主要分为一对一(1:1)、一对多(1:N)...

    Hibernate性能调优

    - **注意点**:在处理单向`one-to-many`关联时,对集合的操作(如`parent.getChildren().add(child)`)可能会触发懒加载,如果没有配置二级缓存,则应尽量避免这类操作。 ##### 双向`one-to-many`关联 - **定义**:...

    Hibernate中List信息的配置

    在Hibernate中,List和Set都是用来处理一对多(One-to-Many)或许多对多(Many-to-Many)关系的集合类型。尽管它们在Java中都是用于存储多个对象的集合,但在Hibernate中,二者的处理方式存在细微差别。 #### List...

    Hibernate映射关系配置:XML方式和注解方式

    3. **关联映射**:XML映射文件中可以定义一对多、一对一、多对多等各种关系,比如使用`&lt;set&gt;`, `&lt;one-to-one&gt;`, `&lt;many-to-many&gt;`等元素。 **注解方式** 1. **@Entity**:这个注解标记一个Java类为Hibernate实体,...

    Hibernate学习笔记_songjignhao_1

    在 Hibernate 映射文件中,我们使用 `&lt;set&gt;` 标签来定义集合关系,`&lt;one-to-many&gt;` 标签表示从 Customer 到 Order 的关系,而 `&lt;many-to-one&gt;` 标签则表示从 Order 到 Customer 的关系。注意设置 cascade 参数以处理...

    to-do-many-many-js1

    ###使用和编辑您可以通过以下方式使用和/或编辑此应用程序: 将此项目克隆到您选择的目录在您喜欢的文本编辑器中打开项目(可选) 打开并将浏览器指向 index.html (例如:file:///project-directory/index.html) ...

    Hibernate中文API大全

    类似这样的映射允许你将一个many-to-many关联表映射为组合元素的集合。(A mapping like this allows you to map extra columns of a many-to-many association table to the composite element class.) 接下来的的...

    hibernate_reference中文文档.pdf

    - **7.5.3 多对多 (many-to-many)**:解释使用连接表的双向多对多关联映射。 - **7.6 更复杂的关联映射**:探讨更复杂的关联映射场景。 #### 8. 组件 (Component) 映射 这部分讲述了 Hibernate 中组件映射的技术...

    LINQ的经典例子-Where,Select、SelectMany、SkipWhile子句中使用数组索引.

    LINQ经典例子-Where、Select、SelectMany、SkipWhile子句中使用数组索引 在这个示例中,我们将学习如何使用LINQ中的Where子句来筛选数组元素,並通过使用数组索引来实现更加灵活的查询。 首先,让我们看一下Where...

    我的经典表结构

    可以通过在一张表中添加外键的方式实现一对一关联,也可以通过中间表实现。 - **Hibernate配置**:使用`@OneToOne`和`@JoinColumn`注解来定义这种关系。 2. **一对多关联(One-to-Many)**: - 这种关联指的是一张...

    ArcSDE table relationship

    为了访问所有相关数据库表中的数据,可以在表之间建立链接或关联。这些链接是基于表之间共同列创建的,使多个不同格式的数据源(如shapefiles、ArcInfo表格、个人地理数据库中的要素类或ArcSDE企业地理数据库中的...

    面试知识点总结--Java工程师面试题之三大框架.pdf

    此外,Hibernate还能处理多种复杂的数据关系,如一对一、一对多、多对多等,通过配置文件中的many-to-one、one-to-many、many-to-many等进行设置。 接下来,我们讨论Struts1,它是基于MVC设计模式的Web应用框架。当...

    JavaSSH框架面试题.pdf

    - Hibernate通过配置文件(如XML)中的many-to-one、one-to-many、many-to-many等标签实现不同关系的映射,对应于数据库中的不同关联类型。 4. Struts1框架流程: - Struts1遵循MVC设计模式,从HTTP请求开始,...

    项目教学资源管理系统数据库构建任务PPT课件.ppt

    这种关系可以是one-to-one、one-to-many、many-to-one或many-to-many等。 知识点七:数据表的设计 在数据库设计中,需要对数据表进行设计,以存储和管理数据。数据表的设计需要考虑数据的一致性、安全性和高效性。...

    Java工程师面试题(三大框架).pdf

    - Hibernate通过配置文件中的`many-to-one`、`one-to-many`和`many-to-many`标签来实现不同类型的关联映射,以表达表与表之间的关系。 4. **Struts1的工作流程**: - Struts1遵循MVC模式,请求首先由Action...

    hibernate中文参考文档

    - **多对一(Many-to-One)**: 使用`&lt;many-to-one&gt;`标签或`@ManyToOne`注解。 - **多对多(Many-to-Many)**: 使用`&lt;set&gt;`标签配合`inverse="true"`属性或`@ManyToMany`注解。 #### 八、高级特性 - **懒加载(Lazy ...

    关于 Python opencv 使用中的 ValueError: too many values to unpack

    最近在OpenCV-Python接口中使用cv2.findContours()函数来查找检测物体的轮廓。 根据网上的 教程,Python OpenCV的轮廓提取函数会返回两个值,第一个为轮廓的点集,第二个是各层轮廓的索引。但是实际调用时我的程序...

    Struts,Spring,Hibernate三大框架的面试[参照].pdf

    - **类间关系**:通过配置文件中的many-to-one、one-to-many、many-to-many等映射关系实现类之间的关联。 2. **Spring**: - **JavaServer Faces (JSF)**:是一个基于组件的Web开发框架,类似于Struts,用于构建...

    hibernate常用一对一、一对多、多对一、多对多映射关系真实例子(华南银行项目)

    **多对多映射(Many-to-Many)** 多对多关系在银行系统中也可能出现,比如客户和产品之间的关系。客户可以购买多种产品,产品也可以被多个客户购买。这种关系需要一个中间表来存储两个实体的关联。在Hibernate中,...

Global site tag (gtag.js) - Google Analytics