gpt4 book ai didi

MySQL VARCHAR 索引在迁移过程中被截断为 255

转载 作者:行者123 更新时间:2023-11-29 23:15:36 26 4
gpt4 key购买 nike

我对这种情况下发生的事情有点困惑。我们在 SQL Server 中有一个列,例如 VARCHAR(500)。迁移工具(MySQL Workbench)将索引截断为255。这个其他post我发现,加上 Google 上的许多其他地方,建议 255 是基于 VARCHAR 的索引的限制。从这里post here ,我看到是前255个字符。但我对实际操作中的效果感到有点困惑。换句话说,如果运气好的话,我正在寻找真实列中 255 点之后的子字符串(使用“like”子句),会发生什么?或者,如果我使用“=”、“>”等比较列,但在比较字符串中使用超过 255,会发生什么情况。在这种奇怪的情况下,它是忽略索引还是什么?

对 MySQL 有点陌生,多年来一直使用 SQL Server,所以只是想了解一下会发生什么。谢谢。

最佳答案

限制以字节为单位,InnoDB 的限制为 767。因此,如果是 UTF8,则 255 个字符是限制(MySQL 的 UTF8 实现仅支持最多 3 个字节字符)。如果是单字节字符集,您的索引显然可以更大。

如果列大于索引,则使用索引将永远找不到精确匹配,并且必须执行一些表扫描,尽管它将使用范围索引来接近。

LIKE 和其他比较运算符仍将正常工作。它们只是性能可能较差。

关于MySQL VARCHAR 索引在迁移过程中被截断为 255,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27846239/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com