mysql – 我应该何时将列标记为主键?
发布时间:2020-12-11 23:51:43 所属栏目:MySql教程 来源:网络整理
导读:我有这样一张桌子: // cookies+----+---------+-------------------+------------+| id | user_id | token | expire |+----+---------+-------------------+------------+| 1 | 32423 | dki3j4rf9u3e40... | 1467586386 || 2 | 65734 | erhj5473fv34gv... |
我有这样一张桌子:
我想了几天.我想我不需要id列.目前id列是PK,我在令牌列上有一个唯一索引,使其既独特又快速搜索. 现在我想知道,我可以从表中删除id列并将令牌列作为PK吗?这是正常的吗? 说实话,到目前为止,我从来没有创建过没有id列的表(它一直是PK),所以我选择令牌列作为PK是很奇怪的. 最佳答案 如果令牌是一个广泛的varchar,我会坚持你已经拥有的AI int PK.加入会更快.插入也是如此.更新可能会以相同的速度,因为为什么要更新该列,从而强制索引树更改.但是,通过不将宽varchar拖动到索引树中,插入对子关系更快.它归结为偏好和可读性.至于可读性,这种varchar几乎没有.它不像“鞋子”这样的类别.这是一种悲惨的难以理解的非人形.因此,对于可读性,将令牌作为PK的争论很少.尽管如此,有时可能会有点用处. 附加复合材料(多列索引) 当您开始将选择的PK与复合材料中的其他列(您可能选择的其他索引)相结合时,thin int将变得非常明显,是最佳选择.即使是适度大的数据集. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |