搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
笔触狂放9
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
Python爬虫--爬取哔哩哔哩(B站)短视频平台视频_python爬取哔哩哔哩指定视频
2
Redis实现短信登入功能(二)Redis实现登入功能_string cachecode = stringredistemplate.opsforvalue
3
05_LATTICE入门篇之IP核_lattice教程
4
漏洞挖掘入门教程(非常详细)从零基础入门到精通,看完这一篇就够了_datalog 漏洞挖掘
5
Python实现排序:插入排序、希尔排序、选择排序、快速排序、交换排序、堆排序、归并排序_分别用递归和非递归实现选择排序、插入排序和交换排序 没有任务详情
6
超详细Git讲解 ,看这一篇就够了
7
经典目标检测YOLOV1模型的训练及验证
8
一步一步教你部署hexo博客网站_hexo部署
9
特征选择之支持向量机递归特征消除(SVM-RFE)
10
android项目出现依赖冲突的多个解决方案
当前位置:
article
> 正文
SQLite虚表介绍_sqlite virtual table
作者:笔触狂放9 | 2024-04-26 17:59:46
赞
踩
sqlite virtual table
虚表
虚表是一种自定义的扩展,允许用户通过代码定制表的数据结构和数据内容;对于数据库引擎,它和普通表一样,允许进行大多数的sql操作。
虚表和普通表的主要不同在于,其表中的数据的来源;对于普通表,来源于数据库的行列值;而对于虚表,来源于用户自定义的函数,可以使数据库中的数据,也可以使其他的外部数据,如:磁盘文件(csv, excel)等;
虚表是sqlite的一种高级特性,它的实现基于sqlite module;
虚表被用于连接数据库引擎和可变的数据源,分为两种:internals and externals;
internal modules的数据来自于数据库文件本身,它的主要目的并不是做普通表不能做的,而是作为智能视图,更具扩展性的、更方便的、更快速的处理一些特定格式的数据;sqlite本身带有两个modules:FTS3和R*Tree,用于全文检索;
external modules的数据来自于数据库文件外部,如cvs、excel文件等;这样,在不导入外部数据到数据库的情况下,用户能够以sql的方式访问和处理外部数据源 (对于10万条记录,速度可以是秒级的);
Module APIs:
int sqlite3_create_module(sqlite3 *db, const char *name, const sqlite3_module *module, void*udp)
CREATE VIRTUAL TABLE table_name USING module_name(arg)
表操作:
xCreate, xConnect, xDisConnect, xDestroy
xBestIndex, xFindFunction, xUpdate, xRename
表扫描:
xOpen, xClose, xFilter, xNext, xEof
xRowid, xColumn
事务处理:
xBegin, xSync, xCommit, xRollback
全文检索
全文检索是internals module的一种应用,使用了fts3或fts4 module。
该模块优化了对全文索引的插入和查询,减少了用户的工作量;
该虚表对应了3~6个影子表,其存储实际的数据;当向虚表中插入文本内容时,相应的数据和索引会被插入到各影子表中
对应若干种关键字查询方式;
涉及多种toknizer,用户也可以定制词法分析器;
索引表采取B-tree的存储方式,每插入一行,都会生成一个新的索引表,这可以降低索引表更新的效率,但是占用了大量的存储空间,因此,需要定期的merge索引表。
可以到sqlite官方网站上查询对虚表的解释(
http://www.sqlite.org/vtab.html
),而对与全文索引,sqlite源码中有相应的单元测试用例,可以通过这些用例查看全文索引的使用方法。
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/笔触狂放9/article/detail/492374
推荐阅读
article
解决使用Genymo
t
ion出现
Unable
t
o s
t
ar
t
t
he vir
t
ual device...
单独运行genmo
t
ion会出现这个问题照着给的FAQ的解决途径改了也还是这样运行
Vir
t
ualBox
后看到黑框疯狂跑白...
赞
踩
article
那些年
Genymotion
遇到的坑,致
Unable
to
load
virtual
box engin...
早就听闻
Genymotion
乃模拟器中的神器,横甩android自带的模拟器几千条街,速度无可比拟。于是在一个风和日丽的...
赞
踩
article
数据库
连接工具
Navicat
查看并导出
ER
图
&&
数据库
使用&&支持
MySQL
、
MariaDB
、Mon...
实际应用项目:http://github.crmeb.net/u/long
Navicat
查看
ER
图
打开
数据库
表 可以看到...
赞
踩
article
Android
studio
中使用
sqlite
_
android
studio
sqlite
...
你可以根据自己的需求进行更复杂的操作,比如使用参数化查询、使用。类中,我们设置了数据库的版本号。每当你对数据库结构进行更...
赞
踩
article
主流常见关系数据库分页
sql
语句写法
limit
、
offset
、
fetch
、
rownum
。
MySQL
、...
select * from demo
limit
10
offset
20;select * from demo lim...
赞
踩
article
Android Room
数据库
升级 新建表
注意事项
_
android
room
create
tab...
注意事项
:
数据库
建表语句要跟定义的数据类字段属性是否为空要一致。一、定义数据类1.1、数据类属性可以为空时如下所示,类型...
赞
踩
article
SQLite
的
命令行
Shell
(三十一)...
SQLite
拥有别人无法比拟
的
装机量,究竟什么成就了
SQLite
呢,本文将
SQLite
的
历史版本记录粗列一下,供各位朋友...
赞
踩
article
【
数据库
】
SQLite3
&
Navicat
for
Premium12
(中文破解)安装教程_navic...
目录一、安装SQLite(一)下载SQLite(二) 创建一个SQLite
数据库
二、安装
Navicat
for
Prem...
赞
踩
article
Android
之
数据
存储
与
访问 —— 初见
SQLite
数据
库
_
android
数据
库
...
本节我们继续来学习
Android
数据
存储
与
访问的第三种方式:
SQLite
数据
库
,和其他的SQL
数据
库
不同, 我们并不需要...
赞
踩
article
.Net
SQLite
简单使用...
【代码】.Net
SQLite
小工具。_.net sqlite.net sqlite 安装Nu...
赞
踩
article
ASP
.
NET
Core
使用
SQLite
教程,EF
SQLite
教程,修改
模型
更新
数据库
,适合...
SQLIte 操作方便,简单小巧,这里笔者就不再过多介绍,感兴趣可以到以下博文https://blog.csdn.net...
赞
踩
article
.
NET
中使用
SQLite
超精简
数据库
,无需任何客户端安装_.
net
sqlite
...
数据库
是软件中非常常用,但是在有一些场景我们需要用到
数据库
基础功能,但是却不想强制客户端安装任何
数据库
软件和
数据库
管理软...
赞
踩
article
.
net
中
使用
sqlite
(普通版)
_.
net
sqlite
...
要在.NET中
使用
SQLite,您需要安装SQLite的ADO.NET提供程序。安装完成后,您可以在您的项目中引用SQL...
赞
踩
article
SQLite
-
net
...
SQLite
-
net
SQLite
-
net
是一个轻量级的C#数据库库,可以让你在.NET应用程序中轻松地与
SQLite
数据...
赞
踩
article
USB
协议学习笔记 - CDC类虚拟
串口
Virtual
Port
Com_cdc
virtual
...
描述
USB
的功能还是比较的复杂,这里主要了解
USB
CDC类(Communication Device Class)实...
赞
踩
article
虚拟时钟(
Virtual
clock
)_
set
_
propagated
_
clock
...
虚拟时钟(
Virtual
clock
) 通常RTL设计要求对芯片/module的输入信号进行reg_in打拍处理,对芯片...
赞
踩
article
数据库
增删改查
的
进阶_
drop
table
if
exists
student
;...
一.
数据库
中创建表时
的
约束1.约束类型类型 含义 NOT NULL 指示某列不能存储 NULL 值 U...
赞
踩
article
Oracle
VM
VirtualBox
报错的一种可能情况及处理办法。_the
virtual
m...
Oracle
VM
VirtualBox
报错的一种可能情况及处理办法。//刚开始学习嵌入式Linux,兴致勃勃的下载了...
赞
踩
article
org.
apache
.
flink
.
table
.
catalog
.exceptions.CatalogE...
复现:$FLINK_HOME/bin/sql-
client
.sh embedded -d $FLINK_HOME/con...
赞
踩
article
CM部署CDH安装组件到
Hive
时报错: Cause:
Table
'
s
cm
.
VERSION
' doe...
Cloudera Manager部署CDH到首次运行页面,安装运行
Hive
时,报错:
Hive
MetaException:...
赞
踩
相关标签
android studio
虚拟机
virtualbox
android
genymotion
数据库
mysql
navicat
oracle
php
sqlite
sql
postgresql
分页
room
数据库升级
room升级
android room
属性不为空
c++
SQLite3
Navicat for Premium