当前位置:  开发笔记 > 后端 > 正文

CHAR()或VARCHAR()作为ISAM MySQL表中的主键?

如何解决《CHAR()或VARCHAR()作为ISAMMySQL表中的主键?》经验,为你挑选了2个好方法。

我需要一个在MySQL中具有用户名和密码字段的简单表.由于用户名必须是唯一的,因此将它们作为主键是有意义的.

使用CHAR()VARCHAR()作为主键更好吗?



1> Owen..:

也可以只使用用户ID索引,加入vs char/varchar要快得多.如果你意外地必须扩展模式的功能,那么现在添加它所花费的两秒钟可以节省你很多时间.

要思考的一些陷阱:

假设我们在将来添加几个表,如果有人想要更改用户名怎么办?

说我们认为该应用程序更成功,我们必须考虑优化,您是否真的想在此时重做您的架构以减少varchar指数的开销?



2> DL Redden..:

我会努力不使用CHAR()或VARCHAR()作为PK,而是使用带有auto_increment的int.这允许您在子表中使用该user_id(如果需要),并且对PK的查询应该更快.如果你必须使用CHAR()或VARCHAR(),我会使用CHAR(),因为它是一个固定的宽度.

我不是100%确定MySQL如何处理VARCHAR(),但是大多数数据库引擎必须在引擎盖下做一些魔术来帮助引擎知道VARCHAR()字段的结束位置以及下一个字段开始的位置,CHAR( )使它直接前进并使发动机不必多想.

推荐阅读
ifx0448363
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有