连接表:一个是普通表,另一个是 FTS 虚拟表

Posted

技术标签:

【中文标题】连接表:一个是普通表,另一个是 FTS 虚拟表【英文标题】:joining tables : one a normal one and the other FTS virtual table 【发布时间】:2012-10-15 06:09:11 【问题描述】:

将普通表与 FTS 表连接是个好主意吗?我想知道它是否会影响 FTS 表的原始性能,还是不会?当然,查询肯定会使用 MATCH 子句。

【问题讨论】:

【参考方案1】:

当你连接两个表 AB 时,SQLite 要么在表 A 中查找匹配记录,要么从表 B 中查找匹配记录。 987654327@.

如果表AB 上有一个索引可以使这些查找快速,则连接速度很快。如果两个表上都有索引,SQLite 会选择它估计效率更高的那个。

所以,回答您的问题:如果您选择与 FTS 表进行联接,则可以执行此操作

使用MATCH 将字段连接到FTS 字段或FTS 表的rowid,或 将 FTS 字段连接到在另一个表中索引的某个字段。

要检查这一点,请使用EXPLAIN QUERY PLAN

【讨论】:

以上是关于连接表:一个是普通表,另一个是 FTS 虚拟表的主要内容,如果未能解决你的问题,请参考以下文章

如何最好地将多个文本文件导入 SQLite FTS 虚拟表?

使用另一个连接表的 id 连接表

在连接三个表时创建的视图,一个表与另一个表相似

mysql - 如何使用父表中的值将连接表连接到另一个连接表?

SQL入门经典之视图

SQL入门经典 之视图