php - 用作主键的随机 BIGINT 会显着影响性能吗?
问题描述
背景:
我正在尝试找到在 API 中存储 ID 的最佳方式。UUID 有很多与性能相关的问题,并且在某些情况下增量 ID 并不安全。在尝试了不同的方法后,我发现随机BIGING
(PHP 示例)是性能和唯一性之间的最佳折衷。
问题:
将随机BIGINT
数(例如 9007199254740991)用作主键是否会在涉及连接等操作时显着影响查询性能?
在小型数据库上,它表现良好,但我从来没有机会在大型生产数据库上测试它。
解决方案
主键通常用作聚集索引,因此如果您的标识符未排序(即默认自动增量是排序的),您将在插入时遇到性能问题。联接不应受到影响。顺便说一句,至于 UUID - 再次它没有排序,但是有算法使 UUID 部分随机生成,部分从当前时间构建,然后对其进行排序。
你是什么意思,简单的自动增量是不安全的?你需要什么安全感?
推荐阅读
- mysql - 在 select 中获取列表中的记录不会限制在 mysql 中列出
- java - 无需触摸交互的对焦相机
- javascript - 使用 JavaScript 在 AAD 中自动创建新的应用注册
- android - 创建 Firebase A/B 测试实验时,«Review» 按钮被禁用
- php - 带有数组过滤的目录列表回显
- linux - 尝试在单个命令中在 docker 容器中运行 chmod
- python - 如何使 random.randint() 更随机
- html - 即使使用 box-sizing 边框框也可以包裹 Flex 项目
- sql - 日期和时间 SQL
- c++ - Vulkan 错误:必须写 gl_Position