2

我在 MySQL 5.5 中有一个数据库。我最终希望那里有数千万条记录。

如果我在两列上添加唯一约束,我知道插入会有一些性能损失;问题是,多少钱?我能做些什么来最小化它?

如果我在单个列上有唯一约束,惩罚会有所不同吗?

4

1 回答 1

5

第一个惩罚是空间。将在您的数据库中为它们创建索引表,并且有 1000 万行,这不是微不足道的,但对您来说可能不是一个大问题。然而,正如@zerkms 指出的那样,这些索引应该缓存在内存缓冲区中,以便它们快速运行,因此您可能会遇到问题。

与单个唯一索引相比,两个唯一索引不应显着减慢您的插入速度。唯一约束检查​​对于 Mysql 来说非常便宜。通过添加索引,您不会看到指数级的减速(除非您遇到一些内存问题),但是对于您添加的每个新索引,更多的是额外的线性时间增加。

于 2013-01-03T20:37:13.383 回答