用于快速查找多个的一对多关系的模式



数据我想为创建一个SQLite数据库

(ID_1, 0, 0)
(ID_2, 0, 0)
(ID_3, 1, 1)
(ID_1, 1, 1)
(ID_2, 1, 1)
(ID_3, 2, 2)
...

ID的三元组然后是两个整数。可以重复多次的大约200M+ID,并且每个ID可以与1和>10000000对不同的两个整数。

我有两个操作要执行:

  1. 经常添加到此数据库。每几秒钟大约有1000个新的数据点(ID、第一个整数、第二个整数(,这需要相当快地完成
  2. 查找一个类似ID_1的id,并获得与之关联的所有整数对的列表——在本例中为(0,0(和(1,1(。这是主要的查找操作,我希望它是快速的

我正试图弄清楚一对多的关系。如何设计我的表,使这两个操作都能很好地工作?

我想帮助你,但我不确定你是否尝试过任何东西。对于像您这样的简单问题(量级是唯一的问题,而不是复杂性(,您只需要一个表和一个索引

CREATE TABLE IF NOT EXISTS triples (
id INTEGER PRIMARY KEY, 
tid TEXT, 
pair1 INT, 
pair2 INT
);
CREATE INDEX IF NOT EXISTS idx_tid ON triples (tid);

我创建了一个类似于上面的数据库,并为pair1pair2使用随机int插入了13M行,仅用于踢球。选择随机ID需要几毫秒,这符合"非常快速"的标准

祝好运

最新更新