有人可以告诉我在sqlite3中创建的虚拟表的生命周期.我有一个带有搜索功能的Android应用程序,我想使用sqlite的快速文本搜索功能.
我不知道这些表在系统中停留多长时间,或者每次访问应用程序时是否需要创建表.
有帮助吗?
SQLite FTS模块为您定义的每个虚拟表创建几个"内部"表.这些表在数据库模式中清晰可见,因此FTS虚拟表及其基础数据完全包含在数据库文件中.
这可能与其他类型的虚拟表不同; 例如,VirtualShape扩展允许将ESRI shapefile(.shp)文件读取为表格; 那些(自然地)与SQLite数据库文件分开存储.
在任何情况下,任何虚拟表本身的定义都存储在数据库文件中,就像普通表一样; 所以你的问题的答案是:
不,每次打开数据库时都不需要重新创建它们.
根据SQLite3文件格式规范,虚拟表定义与任何其他表一样存储在架构表中。虚拟表的所有索引也都存储在DB文件中。
我所有这些都意味着虚拟表存储在DB文件中,因此是持久的。您不必在每次打开数据库连接时都重新创建它-那样也没有多大意义。
使用sqlite3 CLI工具和FTS3表进行的简单测试确认了这一点:-)
| 归档时间: |
|
| 查看次数: |
1546 次 |
| 最近记录: |