MySQL可以使用2个不同存储引擎的索引吗?

时间:2009-10-11 01:09:59

标签: sql mysql

我有一张myisam表和一个innodb表。 innodb有一个来自myisam的外键索引。 MySQL可以在执行连接时使用该索引吗?

2 个答案:

答案 0 :(得分:3)

从多个存储引擎连接表的查询可以使用任何表中的索引。

但请注意,MyISAM不支持外键,并且您无法创建以MyISAM表为目标的外键。有关外键的详细信息,请参阅the MySQL manual

答案 1 :(得分:0)

是的,它可以。通常通过从一个表中进行正常选择(希望是键查找或范围扫描)然后在另一个表上查找连接键来实现大多数连接。第二次查找将在另一个表上使用适当的索引(假设存在这样的索引,并且优化器决定使用它是个好主意。)

MySQL存储引擎接口允许服务器在同一查询中使用来自不同引擎的索引。

是否存在外键约束与选择无关 - 无论如何它都将使用合适的索引。