在sql中使用unique是否低效?

t98cgbkg  于 2021-08-01  发布在  Java
关注(0)|答案(1)|浏览(313)

我是sql新手,已经开始学习postgres了。我想创建一个数据库,其中该数据库中表的一列 email . 现在,由于我将使用电子邮件来唯一地标识注册和登录的人,所以在创建表时使用unique命令,以便如果该电子邮件中已经存在帐户,我将传递一个错误。但这在大型数据库中是否有效?
下面是我使用的sql命令的屏幕截图。

i7uaboj4

i7uaboj41#

你说的高效是什么意思?一 unique 约束或索引增加了开销以防止重复。这个开销是需要的 insert s或 update 在受影响的列上。
多少开销?唯一性是通过使用索引来验证的。在大多数数据库中,在索引中查找值可能非常快,而且通常不会带来显著的性能问题。当然,这种开销有时可能很重要,特别是在非常繁忙的数据库中,有大量的数据更改(想想每秒几十或几百个事务)。
一般来说,表的大小对性能的影响很小——好吧,假设有足够的内存,随着表变大,索引确实会慢一点(但很难注意到)。
另一方面,不具有数据完整性的代价可能要大得多--影响在数据上运行的查询的性能和质量。

相关问题