我需要一个简单的表,其中包含MySQL中的用户名和密码字段。由于用户名必须唯一,因此对我来说,将它们设置为主键是有意义的。
使用CHAR()
还是VARCHAR()
作为主键更好?
可能还只是使用用户ID索引,所以与vs / char /
varchar相比,连接要快得多。如果您不小心扩展了架构的功能,那么现在添加所需的两秒钟时间可以为您节省很多时间。
要考虑的一些陷阱:
问题内容: 在MySQL中使用UUID作为主键有意义吗? 除了手动查询的麻烦之外,使用UUID代替常规INT的利弊是什么? 问题答案: UUID的主要缺点是,如果您想在以后引用该记录以供进一步使用,则必须事先创建它们(即:在相关的外键表中添加子记录): 不会让您看到新的UUID值是什么,并且由于您没有使用常规的auto_incremented主键,因此无法使用它来检索它。您必须分两步进行:
本文向大家介绍char和varchar的区别?相关面试题,主要包含被问及char和varchar的区别?时的应答技巧和注意事项,需要的朋友参考一下 char(n) :固定长度类型,比如订阅 char(10),当你输入"abc"三个字符的时候,它们占的空间还是 10 个字节,其他 7 个是空字节。 优点:效率高;缺点:占用空间;适用场景:存储密码的 md5 值,固定长度的,使用 char 非常合适。
问题内容: Varchar(max)列不允许作为SQL Server中的主键。 可以作为主键的varchar类型的最大长度是多少? 这可能是一个不好的做法,但遇到了这种情况。 问题答案: 900个字节是主键的最大长度,这在我看来是个坏主意,为什么不使用替代键呢?
问题内容: 我有一个用于存储优惠券/折扣的表,并且我想将coupon_code列用作主键,即。 我的理由是,每个优惠券都将具有唯一的代码,而我将要运行的唯一命令是 我不会进行任何联接或索引编制,并且我看不到该表中有超过几百个条目。 在我看来,这可以,但是我不知道是否有任何我想念的东西。 问题答案: 从某种意义上说,您当然可以,您的RDBMS将允许您这样做。这个问题的答案,你是否没有问题 应该 做到
问题内容: 如果我使用ID nr:s代替VARCHARS作为外键会更好吗?最好使用VARCHARS的ID nr:s istead作为主键吗?ID nr是指INT! 这就是我现在所拥有的: 我可能已经想到了: 还是我在这里认为完全错误? 问题答案: VARCHAR用于任何KEY的问题在于它们可以保留WHITE SPACE。空格由任何无法在屏幕上读取的字符组成,例如空格标签,回车符等。当您开始追查为什
问题内容: 我存储的名字和姓氏各不超过30个字符。哪个更好还是。 我已阅读,尽可能多的空间两倍占用比和用于国际化。 那么您建议我使用什么:或? 还请让我知道两者的性能。两者的性能相同还是不同?因为空间不是太大的问题。问题是表现。 问题答案: 基本上,nvarchar意味着您可以处理很多字母,而不仅仅是普通英语。从技术上讲,它意味着支持unicode,而不仅仅是ANSI。这意味着全角字符或大约是空格