数据我想为创建一个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对不同的两个整数。
我有两个操作要执行:
- 经常添加到此数据库。每几秒钟大约有1000个新的数据点(ID、第一个整数、第二个整数(,这需要相当快地完成
- 查找一个类似
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);
我创建了一个类似于上面的数据库,并为pair1
和pair2
使用随机int插入了13M行,仅用于踢球。选择随机ID需要几毫秒,这符合"非常快速"的标准
祝好运