相关疑难解决方法(0)

MySQL中的复合主键性能缺陷

我们有一个表,其中包含一个由三个字段组成的复合主键(它在MySQL 5.1中).此表上每秒有近200个插入和200个选择,表的大小约为100万行,并且正在增加.

我的问题是:"复合主键"是否会降低此表上的插入和选择的性能?

我应该使用简单的自动增加INT ID字段而不是复合主键吗?(我认为答案与MySQL处理多列索引的方式有很大关系)

mysql performance primary-key composite-key

43
推荐指数
2
解决办法
3万
查看次数

Hibernate - @ElementCollection - 奇怪的删除/插入行为

@Entity
public class Person {

    @ElementCollection
    @CollectionTable(name = "PERSON_LOCATIONS", joinColumns = @JoinColumn(name = "PERSON_ID"))
    private List<Location> locations;

    [...]

}

@Embeddable
public class Location {

    [...]

}
Run Code Online (Sandbox Code Playgroud)

给定以下类结构,当我尝试将新位置添加到Person的位置列表时,它总是会导致以下SQL查询:

DELETE FROM PERSON_LOCATIONS WHERE PERSON_ID = :idOfPerson
Run Code Online (Sandbox Code Playgroud)

A lotsa' inserts into the PERSON_LOCATIONS table
Run Code Online (Sandbox Code Playgroud)

Hibernate(3.5.x/JPA 2)删除给定Person的所有相关记录,并重新插入所有以前的记录,再加上新记录.

我认为Location上的equals/hashcode方法可以解决问题,但它没有改变任何东西.

任何提示都表示赞赏!

java orm hibernate jpa jpa-2.0

39
推荐指数
2
解决办法
4万
查看次数

标签 统计

composite-key ×1

hibernate ×1

java ×1

jpa ×1

jpa-2.0 ×1

mysql ×1

orm ×1

performance ×1

primary-key ×1