gpt4 book ai didi

mysql - MYSQL 查询中的 INDEX

转载 作者:行者123 更新时间:2023-11-29 10:00:27 24 4
gpt4 key购买 nike

我有以下 MYSQL 查询:

SELECT statusdate,consigneenamee,weight,productcode,
pieces,statustime,statuscode,statusdesc,generatingiata,
shipmentdate,shipmenttime,consigneeairportcode,signatory
FROM notes
where (shipperref='180908184' OR shipperref='180908184'
OR shipperref='180908184' OR shipperref='180908184 '
OR shipperref like 'P_L_%180908184')
order by edicheckpointdate asc, edicheckpointtime asc;

我使用 MYSQL Workbench 添加了索引来加速此查询,但在执行 EXPLAIN 命令时,它仍然不显示键并显示为 NULL:

+----+-------------+---------------+------+---------------+------+---------+------+---------+-----------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+---------------+------+---------------+------+---------+------+---------+-----------------------------+
| 1 | SIMPLE | dhltracking_2 | ALL | index2 | NULL | NULL | NULL | 3920874 | Using where; Using filesort |
+----+-------------+---------------+------+---------------+------+---------+------+---------+-----------------------------+

发生这种情况的任何原因以及如何加快此查询?

我的索引:

Index added on table

最佳答案

您的查询中有 LIKE 语句,我认为您的索引跨越了超过 20-30% 的表行(或更多..),这就是 MySQL 出于性能原因可以忽略它的原因。我的建议:

  1. 按照 @Solarflare 的建议添加 FORCE INDEX
  2. 使用 FULLTEXT 索引(也适用于 CHAR 和 VARCHAR)并使用 MATCH ... AGAINST 搜索 ( https://dev.mysql.com/doc/refman/8.0/en/fulltext-boolean.html )

关于mysql - MYSQL 查询中的 INDEX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53099544/

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