CREATE INDEX example_idx ON YOUR_TABLE(your_column(50)) 假设 your_column 是 VARCHAR(100),上例中的索引将只在前 50 个字符上。搜索超过第 50 个字符的数据将无法使用索引。
我不这么认为。我认为当查询超过 50 个字符的字符串时,MySQL 将首先使用前 50 个字符和索引来获取匹配列表(通常是一个很短的列表),然后在没有索引的列表中搜索。
当查询字符串超过 50 个字符时,MySQL 真的不会使用索引吗?
CREATE INDEX example_idx ON YOUR_TABLE(your_column(50)) 假设 your_column 是 VARCHAR(100),上例中的索引将只在前 50 个字符上。搜索超过第 50 个字符的数据将无法使用索引。
我不这么认为。我认为当查询超过 50 个字符的字符串时,MySQL 将首先使用前 50 个字符和索引来获取匹配列表(通常是一个很短的列表),然后在没有索引的列表中搜索。
当查询字符串超过 50 个字符时,MySQL 真的不会使用索引吗?
你只说对了一部分。MySQL 查询优化引擎仍将尝试使用该索引,只要: