首页 > 解决方案 > 用作主键的随机 BIGINT 会显着影响性能吗?

问题描述

背景:

我正在尝试找到在 API 中存储 ID 的最佳方式。UUID 有很多与性能相关的问题,并且在某些情况下增量 ID 并不安全。在尝试了不同的方法后,我发现随机BIGINGPHP 示例)是性能和唯一性之间的最佳折衷。

问题:

将随机BIGINT数(例如 9007199254740991)用作主键是否会在涉及连接等操作时显着影响查询性能?

在小型数据库上,它表现良好,但我从来没有机会在大型生产数据库上测试它。

标签: phpmysqllaraveleloquent

解决方案


主键通常用作聚集索引,因此如果您的标识符未排序(即默认自动增量是排序的),您将在插入时遇到性能问题。联接不应受到影响。顺便说一句,至于 UUID - 再次它没有排序,但是有算法使 UUID 部分随机生成,部分从当前时间构建,然后对其进行排序。

你是什​​么意思,简单的自动增量是不安全的?你需要什么安全感?


推荐阅读