gpt4 book ai didi

mysql索引合并问题

转载 作者:行者123 更新时间:2023-11-29 00:46:58 28 4
gpt4 key购买 nike

为什么 mysql 没有使用 index_merge?

看起来我的服务器启用了 index_merge,但优化器仍未考虑。

optimizer switch    index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on



explain SELECT a,b FROM `zip25` WHERE b=91367 OR a=91367


id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE zip25 ALL a,b NULL NULL NULL 752299 Using where

[编辑]
表定义

CREATE TABLE `zip25` (
`a` char(5) DEFAULT NULL,
`b` char(5) DEFAULT NULL,
`distance` float NOT NULL,
KEY `a` (`a`),
KEY `b` (`b`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

提前致谢

最佳答案

字段的数据类型是字符,但您在查询中使用的是整数。发生的事情是隐式转换为 char。它看起来不像是严重的问题,但实际上它根本阻止了 MySQL 使用索引!始终注意数据类型!

将您的查询更改为:

解释 SELECT a,b FROMzip25WHERE b="91367"OR a="91367"

关于mysql索引合并问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10153243/

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