art*_*prs 2 sql database optimization performance query-optimization
例如,我总是为users表生成一个自动增量字段,但我还在其用户名上指定了一个UNIQUE索引.在某些情况下,我首先需要获取给定用户名的userId,然后执行所需的查询,或在所需的查询中使用JOIN.这是2次访问数据库或JOIN与varchar索引.
我应该使用整数主ID吗?
INT对小 VARCHAR索引有真正的性能优势吗?
拥有代理主键有几个优点,包括:
当你在另一个表中有一个外键时,如果它是一个整数,它只占用几个字节的额外空间,并且可以快速连接.如果您使用用户名作为主键,则必须将其存储在两个表中 - 占用更多空间,并且在需要加入时需要更长时间进行比较.
如果用户希望更改其用户名,那么如果您将其用作主键,则会遇到很大问题.虽然可以更新主键,但这样做是非常不明智的,并且可能会导致各种问题,因为此密钥可能已发送到各种其他系统,用于链接,保存在备份中,具有日志已存档等.您无法轻松更新所有这些地方.
| 归档时间: |
|
| 查看次数: |
176 次 |
| 最近记录: |