论坛首页 Java企业应用论坛

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

浏览 6206 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-04-11  
<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肯定是得有索引的。
   发表时间:2007-04-12  
索引会大大的提高速度!
0 请登录后投票
   发表时间:2007-04-17  
索引是一把双刃剑,用的好可以带来很大的收益,用的不好简直就是恶梦,所以并不是说所有地方都能使用,还是要实事求是的用
0 请登录后投票
   发表时间:2007-04-29  
数据库不同,索引也不一样,DB2建立索引后,还得运行runstat命令才起作用。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics