Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我在 MySQL 5.5 中有一个数据库。我最终希望那里有数千万条记录。
如果我在两列上添加唯一约束,我知道插入会有一些性能损失;问题是,多少钱?我能做些什么来最小化它?
如果我在单个列上有唯一约束,惩罚会有所不同吗?
第一个惩罚是空间。将在您的数据库中为它们创建索引表,并且有 1000 万行,这不是微不足道的,但对您来说可能不是一个大问题。然而,正如@zerkms 指出的那样,这些索引应该缓存在内存缓冲区中,以便它们快速运行,因此您可能会遇到问题。
与单个唯一索引相比,两个唯一索引不应显着减慢您的插入速度。唯一约束检查对于 Mysql 来说非常便宜。通过添加索引,您不会看到指数级的减速(除非您遇到一些内存问题),但是对于您添加的每个新索引,更多的是额外的线性时间增加。