gpt4 book ai didi

mysql - INDEX 用法不同 - 找到了解决方案

转载 作者:行者123 更新时间:2023-11-30 23:09:12 26 4
gpt4 key购买 nike

我尝试运行一个直接给出 where 条件的 SQL 查询(它运行得更快)。

WHERE A = '1234'

但是传递变量需要更多时间。

SET @VAL = '1234'
WHERE A = @VAL

并且 EXPLAIN 参数也显示不同的关键字段。可能是什么原因?

快一个(直接给常量)

--------------------+---------+-----------------------------+------+----------------------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+--------------------+--------+-------------------------------------------------------------+------------------------+---------+-----------------------------+------+----------------------------------------+
| 1 | SIMPLE | tracking | ref | unique-guest_user,FK4BBA1EB7AFA8C3E7,browser_id_hash_search | browser_id_hash_search | 257 | const | 3 | Using index condition; Using temporary |
| 1 | SIMPLE | mn_connected_users | eq_ref | user_id | user_id | 4 | 20131123_b.tracking.user_id | 1 | Using where |
+----+-------------+--------------------+--------+-------------------------------------------------------------+------------------------+---------+-----------------------------+------+----------------------------------------+
2 rows in set (0,01 sec)

慢一(通过变量给出常量值)

+----+-------------+--------------------+--------+--------------------------------------+-------------------+---------+-----------------------------+--------+-------------------------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+--------------------+--------+--------------------------------------+-------------------+---------+-----------------------------+--------+-------------------------------------------+
| 1 | SIMPLE | tracking | index | unique-guest_user,FK4BBA1EB7AFA8C3E7 | unique-guest_user | 522 | NULL | 248724 | Using where; Using index; Using temporary |
| 1 | SIMPLE | mn_connected_users | eq_ref | user_id | user_id | 4 | 20131123_b.tracking.user_id | 1 | Using where |
+----+-------------+--------------------+--------+--------------------------------------+-------------------+---------+-----------------------------+--------+-------------------------------------------+
2 rows in set (0,00 sec)

解决方案:

我只声明为 VARCHAR,但它不起作用。但我现在得到了解决方案。 CONVERT(A USING latin1) 用于解决问题。我在 Where 条件下给出了这个。感谢您的帮助

最佳答案

解决方法:

我只声明为 VARCHAR,但它不起作用。但我现在得到了解决方案。 CONVERT(A USING latin1) 用于解决问题。我在 Where 条件下给出了这个。感谢您的帮助 – user3080572

关于mysql - INDEX 用法不同 - 找到了解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20586005/

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