为什么用引号括起一个字段比没有引号花费更长的时间?
Why does enclosing a field in quotes take longer than without it?
例如,我有这个查询:
SELECT * FROM a WHERE field IN (-1, "1")
上述查询的执行时间比这个查询长 20 倍。为什么?
SELECT * FROM a WHERE field IN (-1, 1)
此外,在第一种情况下 index 没有被使用,即使 USE INDEX
.
很可能是因为 MySQL 将 field
转换为 CHAR,而不是将 "1"
转换为 INT。
查看运行时间:
SELECT * FROM a WHERE field IN (-1, CAST("1" AS INT));
例如,我有这个查询:
SELECT * FROM a WHERE field IN (-1, "1")
上述查询的执行时间比这个查询长 20 倍。为什么?
SELECT * FROM a WHERE field IN (-1, 1)
此外,在第一种情况下 index 没有被使用,即使 USE INDEX
.
很可能是因为 MySQL 将 field
转换为 CHAR,而不是将 "1"
转换为 INT。
查看运行时间:
SELECT * FROM a WHERE field IN (-1, CAST("1" AS INT));