通过sessionid字段拆分大型sqlite表

时间:2013-05-15 11:55:45

标签: sqlite refactoring-databases

我对sql(ite)比较新,我在学习新项目时正在学习。 我们在一个“数据”表中有数百万个事务行,一个字段是“sessionid”字段。

由于我现在想专注于会话中的活动,我主要需要查看来自同一会话的交易。

我现在的直觉是,如果我将数据库按会话分成许多单个会话表,那么将比单独的会话表查询总是快得多,然后继续进行。我的问题:这是正确的吗?会有所作为吗?

即使不是:你能帮助我告诉我,如何将一个“数据”表行拆分成许多特定于会话的表,这些行保持不变?还有一个表将sessionId与他们的表相关联吗?

谢谢!


一位朋友刚刚告诉我,分裂到表格的事情会非常不灵活,我应该尝试为不同的sessionId行添加一个不同的索引来更快地访问单个会话。对此有什么想法以及如何做到最好?

1 个答案:

答案 0 :(得分:0)

首先,到目前为止,您是否遇到任何特定的性能瓶颈?如果是,请描述一下。

每个会话有一个表可能会加快查找/索引(对于INSERT)的速度。

SQLite没有对表的数量施加限制,所以你应该没问题。

另一种提供更轻松维护的解决方案是,如果您每天/每周创建一个表。

根据您的会话持续多长时间,这可能是否可行。

相关:https://stackoverflow.com/a/811862/89771