奇怪的性能问题?

时间:2019-10-08 22:28:45

标签: mysql performance

我有一个令人困惑的严重MySQL查询性能问题。

如果我跑步

grails 2.4.3

一个小时后,查询仍未完成。

但是,

SET @name = 'John'
SET @customer_id = 123

SELECT full_name, address1, address2, city, state, zip
FROM   users
WHERE  first_name = @name
       AND customer_id = @customer_id

将在1秒内完成。

诚然,users表具有超过1.42亿行,所以它是一个较大的表,但是第一个查询的行为类似于全表扫描,其中第二个查询的行为类似于索引查找,尽管first_name列上没有索引

有什么想法吗?我无法想象为什么在WHERE子句中使用用户定义的变量会使查询从耗时1秒变为超过1小时!!

查询会花很长时间,因为它是一个大表,所以我可以接受,但是我不明白为什么使用变量会使查询变慢得多。

0 个答案:

没有答案