针对.net的SQLite性能建议

时间:2017-01-18 15:42:14

标签: database vb.net sqlite

我在我的应用程序中使用SQLite。情景是我有股票市场数据,每个公司都是一个有1个表的数据库。该表存储的记录范围从几千到五十万。

目前,当我实时更新数据时 - 打开连接,检查特定数据是否存在。如果没有,我然后插入它并关闭连接。然后在循环中完成,并更新每个数据库(代表公司)。插入的记录数量很少,不是问题。但这个过程还好吗?

另一种方法是让1个数据库包含许多表(每个公司可以是一个表),每个表可以有很多记录。这是好还是不好?

您可以期待约500家公司。我在VS 2010中编码。语言是VB.NET。

2 个答案:

答案 0 :(得分:0)

我做了类似的事情,在另一个字段中使用类似大小的数据。这在很大程度上取决于您的索引。最终,将每个大表分开是最好的(每个文件1个表,代表一个有凝聚力的单元,在你的情况下是一个公司)。另外,您可以获得每个公司表具有相同名称的优势,而不是具有相同方案的不同名称的x表(并且不需要对公司名称进行清理以使新表成为必需)。

在内部,其他DBMS通常在其内部结构中每个表至少保留一个文件,因此SQL只是一个抽象层。 SQLite(尽管它的概念和吹嘘)适用于小型项目,并且查询较大的数据模型会变得更加挑剔,以使其运行良好。

答案 1 :(得分:0)

数据的最佳组织是使其正确规范化,即将所有数据放入带有公司列的单个表中。 这对性能更好,因为与表和数据库相关的开销减少了。

可以使用索引加快查询速度,但您需要的索引取决于实际查询。