正常表vs虚拟表SQLite数据库

当需要搜索时,Android开发者手册似乎更喜欢SQLite DB中的FTS3。 我阅读了FTS3说明,它似乎创建了一个虚拟表格而不是永久表格。 SQLite中的虚拟表(FTS3)和普通表有什么区别? 即使在我退出应用后,虚拟表是否永久存在并保留在数据库中? 谢谢。


虚拟表允许SQLite引擎使用(通常)非SQLite代码访问数据存储的内容。 这允许开发人员为SQLite添加自定义功能。

在FTS的情况下,它最初并不是SQLite引擎的一部分。 它是SQLite外部的代码,允许最终用户对数据进行全文搜索。

虚拟表是永久的吗? 这取决于实施。 对于FTS,数据是永久的。 但是,您可以创建一个使用RAM进行存储的实现 - 当应用程序终止时,这显然会消失。

有关虚拟表格的更多信息,请访问:http://www.sqlite.org/vtab.html


我认为,更准确地说,创建搜索界面的API指南指出,根据搜索的特性,FTS3比LIKE更快速地进行全文搜索。 例如,使用LIKE的常规SQLite查询允许使用通配符,而使用MATCH的FTS3查询则不允许。 如果你想搜索令牌,你可能想要使用FTS3。 如果你做不精确的比赛,你一定要跟LIKE一起去。

链接地址: http://www.djcxy.com/p/19191.html

上一篇: Normal Table vs Virtual Table SQLite DB

下一篇: How to create virtual table for FTS3 with ORMLite