我有两个表“bundles”和“pages2bundles”。 “bundles”表中的每个项目都是对名为“documents”的第三个表中的文档的引用。
“文档”中的每个文档引用都是唯一的。 “bundles”可能包含来自“documents”表的重复引用。
我允许用户创建“捆绑包”并将其保存到数据库中。这些可以在搜索“文档”表之后创建,在这种情况下,所有需要做的是将文档引用保存到“包”表。每个捆绑包可以运行数千个文档引用。
还有一个表“文本”,其中包含每个文档的OCR文本。我的用户可以通过搜索“文本”表来创建包。这些搜索需要保留文档和搜索返回的单个页面的id。保存这些捆绑包很容易导致需要在“pages2bundles”中插入超过100,000个页面引用。
我还没有接受这个。我自己测试了超过100,000页,插入时间和重新加载捆绑都是合理的。两个表都包含索引的所有必填字段。
但是,可能会创建很多这些捆绑包,这可能最终会对性能产生影响。
我想知道为什么我不应该只处理“pages2bundles”,而是将“bundles”中的每个文档的引用存储为简单的csv测试数组。我没有必要(据我所知到目前为止)在“pages2bundles”中搜索页面没有引用。我认为这会通过将处理数组的负担传递给客户端来提高服务器性能。
我欢迎任何关于将页面引用作为文本数组处理的优点和缺点的观点。