BaseX属性索引在重新启动后丢失?
我有一个相当大的BaseX数据库(>2GB),其中包含大量XML文档。XML文件本质上非常简单。典型xml文件的简化示例:BaseX属性索引在重新启动后丢失?,basex,Basex,我有一个相当大的BaseX数据库(>2GB),其中包含大量XML文档。XML文件本质上非常简单。典型xml文件的简化示例: <document id="doc_id_1234"> <value id="1">value 1</value> <value id="2">value 2</value> <value id="3">value 3</value> </document>
<document id="doc_id_1234">
<value id="1">value 1</value>
<value id="2">value 2</value>
<value id="3">value 3</value>
</document>
值1
价值2
价值3
我的XQuery主要基于属性选择器(即//value[@id='1'或@id='3']
),我发现在数据库中创建属性索引会大大提高查询性能
我每月或每季度上传新的XML数据。导入新的XML文件后,我再次重新创建属性索引
然而,我发现在重新启动服务器后(在我的服务提供商那里似乎经常发生这种情况),查询速度会显著降低。感觉性能下降到不存在属性索引的状态。
如果我使用BaseX GUI打开数据库,属性索引看起来仍然存在。当我删除现有的属性索引并重新创建它时,我的XQuery的性能又是闪电般的快
我使用的是BaseX 7.7.1版
我想知道:
非常希望您能帮助我,因为这是我制作网站上的一个重要问题。回答您的问题:
atv*.basex
存储在文件中true
。这将在索引无效或不可用时重建索引。要确保使用了索引,请从运行查询
免责声明:我在某种程度上隶属于BaseX团队。我的BaseX数据目录中确实有atv*.BaseX。因此索引文件已经就位,索引本身似乎也在工作——尽管速度并不稳定(如报告所述)。我真的不知道如何模拟或检查索引get是否无效。是否有某种命令来检查属性索引的状态?“要确保使用了索引,请从basexclient-V运行查询”我不确定您的意思:在basexclient中重新启动后运行缓慢的查询?如何使用-V开关启动客户端?提前感谢您的帮助!你有没有找到解决这个问题的办法?