在MYSQL期间对大字符串(varchar)(大约100个字符左右)具有UNIQUE约束的可能缺点可能是:
- 插入阶段
- 检索阶段(在另一个主键上)
查询的长度是否会影响读/写的性能? (除了用于记账的磁盘/内存)。
谢谢
几个问题。索引中的列大小有限制(191,255,767,3072等,具体取决于各种事物)。
您的列符合限制。
只需为该列制作UNIQUE
或PRIMARY
键。存在一些轻微的性能问题,但要记住这一点:获取一行比涉及用于定位它的密钥的任何数据类型问题更昂贵。
您的专栏不适合。
现在变通办法变得丑陋了。
INDEX foo(50)
)存在许多问题和效率低下。UNIQUE foo(50)
是错误的。它声明前50个字符被限制为唯一,而不是整个列。(如果需要,我会详细说明。)
获取一行(假设语句被解析并且PRIMARY KEY
可用。)
如果下一步是比较两个字符串(对于JOIN或ORDER BY),那么一个简单的子例程调用扫描多个字符。 (好吧,大多数utf8校对都不是'简单'。)而且,是的,比较两个INT会更快。