我對這種情況會發生什麼感到困惑。我們有一列,例如SQL Server中的VARCHAR(500)。遷移工具(MySQL Workbench)將索引截斷爲255.我發現的其他post以及Google上的其他許多地方都表明,255是基於VARCHAR的索引的限制。從這個post here,我看到它是第255個字符。但我對實際操作中的這種方法有些困惑。換句話說,如果通過愚蠢的運氣,我正在尋找一個子字符串(使用「like」子句),它位於實列中的255點之後,會發生什麼?或者,如果我使用「=」,「>」等比較列,但在比較字符串中使用了多於255的字符,會發生什麼情況。在這種棘手的情況下,它是否忽略了索引,或者是什麼?在遷移過程中MySQL VARCHAR索引被截斷爲255
MySQL的新增功能,多年來一直與SQL Server一起工作,所以試圖瞭解期望的內容。謝謝。
謝謝。如果「like」子字符串在前255個字符之外,會發生什麼情況,比如「像列'%FUN%'」,其中「FUN」子字符串不在前255個字符中。在這種情況下它會返回沒有匹配的行,還是會執行表掃描? – user3329922
對於'LIKE'%FUN%'',無論索引大小如何,它都無法使用索引,只是進行表掃描。在這種情況下,指數限制甚至不重要。也許你想要一個FULLTEXT索引? –
謝謝,我現在明白了。我有點忘記了這樣的「相似」陳述無論如何都無法使用索引,但現在我想到了它是非常有意義的。 – user3329922