首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >InnoDB表上的空间索引

InnoDB表上的空间索引
EN

Database Administration用户
提问于 2013-09-05 09:44:38
回答 2查看 2.1K关注 0票数 3

我有一个InnoDB中的数据库,因为我需要一致性(级联删除)。

现在,我希望使用空间索引来选择按几何距离排序的行。

然而,空间索引需要MyISAM。什么是最好的选择?

我所能想到的最好的方法是将位置放在一个单独的MyISAM表中,并将InnoDB表与之连接起来。(请注意,为了简化事情,我已经从语句中删除了空间魔力。)

代码语言:javascript
复制
select * from inno join isam using (id) order by isam.distance

其他解决方案?

EN

回答 2

Database Administration用户

发布于 2013-09-05 11:44:08

是的,这是我认为最好的。您可以使用InnoDB (引用完整性)和MyISAM (空间索引)。

唯一的技术困难是确保MyISAM表与InnoDB表同步。这可以通过触发器或存储过程来完成(因此InnoDB表上的每一项操作都是通过一个过程完成的)。

另一个“好处”是,由于坐标值在两个表中都是重复的,您可以跳过备份MyISAM表(或单独备份),并有一个过程在数据库恢复之后重新创建它。您可能需要一个过程来定期检查这两个表是否同步。

为了加快需要空间索引的查询--如果表不是很大--您可以确保索引预先加载到内存中,甚至在单独的缓存中加载。见LOAD INDEX INTO CACHE语法多密钥缓存

票数 2
EN

Database Administration用户

发布于 2018-06-22 05:07:31

MySQL 5.7+

MySQL 5.7,InnoDB获得了空间索引在MySQL 5.7中有什么新的

InnoDB现在支持MySQL支持的空间数据类型。在此发布之前,InnoDB将将空间数据存储为二进制BLOB数据。BLOB仍然是底层数据类型,但空间数据类型现在映射到新的InnoDB内部数据类型DATA_GEOMETRY

我相信这是重写/重写带来的提升的一部分

也看,

票数 1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/49307

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档