六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 330|回复: 0

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

[复制链接]

升级  17.33%

74

主题

74

主题

74

主题

举人

Rank: 3Rank: 3

积分
252
 楼主| 发表于 2013-1-25 22:44:45 | 显示全部楼层 |阅读模式
<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肯定是得有索引的。
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表