KDB数据库——扩展表

2022-05-25 00:00:00 数据 字段 文件 内存 序列化

前言

在本章中,将介绍kdb +,它是Kx提供的数据库。粗略地说,kdb +是当q表被持久化然后映射回内存以进行操作时会发生的事情。

一、内存中的表与序列化的表

只要有足够的物理内存来保存,就可以将表完全保留在内存中。从数据库的角度来看,这有一个问题:

内存中表是短暂的,意味着如果q进程死亡,所有的数据都将丢失。

一种解决方案是使用set或类似的机制将表序列化为持久存储。我们先回复一下之前已经介绍的关于内存中的表与序列化的表的相关知识。

1. 表与键表

简单回顾一下表的几种创建形式。

q)flip `s`v!(`a`b`c;100 200 300) /通过对字典的转置形式创建表
s v
-----
a 100
b 200
c 300
q)([] s:`a`b`c; v:100 200 300) /通过定义形式穿件表
s v
-----
a 100
b 200
c 300
q)([] s:`symbol$(); v:`int$()) /通过定义形式穿件一个空表
s v
---
q)t:([] s:`a`b; v:10 20) /简单创建表并赋值
q)([id:1001 1002 1003] s:`a`b`c; v:100 200 300) /创建一个键表
id | s v
----| -----
1001| a 100
1002| b 200
1003| c 300
q)([id:`int$()] s:`symbol$(); v:`int$()) /创建一个空的键表
id| s v
--| ---
q)meta t /查询表的相关结构信息
c| t f a
-| -----
s| s
v| j

相关文章