gpt4 book ai didi

java - 级联删除在更大数据集上的性能下降,这可能是由于缺乏索引造成的吗?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:03:08 24 4
gpt4 key购买 nike

我正在编写一些代码,必须级联删除某个数据库中的记录,我注意到性能下降,因为数据库中有更多记录。当我刚填充数据库时,填充开始和填充结束之间的性能似乎没有大的下降,但是当我执行级联删除时,性能会随着数据库的增大而下降。我假设它需要为级联进行大量连接才能找到其他表中的所有相关记录,这会导致它在更大的数据集上变慢。但是当我只添加一条记录时,它是否还必须测试已经存在的主键和其他唯一约束,并且在更大的数据集中这也不会更慢,或者与删除过程相比速度如此之快在填充数据库时很难注意到性能下降?还是级联速度很慢,因为我没有专门为它级联到的表编制索引?

那么其次,如果这些表已经有一个生成的 id 作为主键,是否会索引它级联的表以加速级联?从更一般的意义上讲:主键是否自动编入索引?

最佳答案

I'm assuming that it would need to make a lot of joins for the cascade to find all the related records in other tables, which causes it to slow down on bigger datasets.

不要假设。打开 Hibernate 的日志记录(特别是 org.hibernate.SQL 的记录器)以查看 确切 Hibernate 执行了哪些 SQL 语句。然后根据事实而不是假设做出决定并采取行动。

In a more general sense: are primary keys automatically indexed?

是的。

关于java - 级联删除在更大数据集上的性能下降,这可能是由于缺乏索引造成的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4070226/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com