gpt4 book ai didi

mysql - 使用两个不同引擎(TokuDB 和 InnoDB)连接表时索引无法正常工作

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

我正在尝试连接两个不同引擎上的两个表。一种是在 Innodb 上,另一种是在 Tokudb 上。

查询类似于:

select * from table1 t1, table2 t2 where t1.a = t2.x and t1.b = 'xyz';

这里table1有a(索引),b(索引),c列并且有引擎innodb
table2有x(索引),y,z列并有引擎tokudb

它正在扫描 table2 的所有行并使用连接类型:ALL

解释查询的结果

id  select_type table partitions type   possible_keys   key   key_len ref     rows  filtered    Extra
1 SIMPLE t1 NULL const b,a b 303 const 1 100.00 NULL
1 SIMPLE t2 NULL ALL NULL NULL NULL NULL 20687 100.00 Using where

正如您所看到的,它正在扫描整个表2。我在这里错过了什么吗?或者是因为它连接了两个不同的引擎?

创建表语法

表1

CREATE TABLE `table1` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT
`a` varchar(255) DEFAULT NULL,
`b` varchar(255) DEFAULT NULL,
`c` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `a` (`a`),
UNIQUE KEY `b` (`b`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

表2

CREATE TABLE `table2` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`x` varchar(100) DEFAULT NULL,
`y` varchar(100) DEFAULT NULL,
`z` varchar(100) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `x` (`x`)
) ENGINE=TokuDB DEFAULT CHARSET=latin1;

最佳答案

加入时使用相同的字符集:

) ENGINE=InnoDB DEFAULT CHARSET=utf8;
) ENGINE=TokuDB DEFAULT CHARSET=latin1;
^^^^^^

关于mysql - 使用两个不同引擎(TokuDB 和 InnoDB)连接表时索引无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59853619/

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