如何解决LiteDB 比 XML 文件存储占用更多的文件大小
我们将 XML 文件存储用于小规模(使用 Electron 的带有角度混合桌面应用程序的 .NET CORE)。在那个应用程序中,我们将数据库模式存储在 XML 文件数据库中。但是在 XML 文件中存储和获取数据需要更多时间,而且当多个请求同时命中时,它会抛出文件读取异常。
所以计划切换像 LiteDB 或 Mongo DB 这样的 No SQL 数据库。首先我们尝试了 LITEDB ,它的文件大小是每个数据库模式存储的 XML 文件存储的三倍。
谁能推荐一下,
- 如果我们不使用 SQL 数据库或任何其他方式来提高 XML 读/写的性能,那么读/写将得到改善。
- 如果同时收到多个请求,如何修复文件读取异常。
- 也打算试一下mongodb
请找出一些重要的代码片段来读/写 xml
从路径获取文件以读取数据
if (File.Exists(outputFile) == true)
{
using (Aes encryptor = Aes.Create())
{
Rfc2898DeriveBytes pdb = new Rfc2898DeriveBytes(EncryptionKey,new byte[] {xxxxxxxxxxxxxxxxxxx });
encryptor.Key = pdb.GetBytes(32);
encryptor.IV = pdb.GetBytes(16);
using (FileStream fsInput = new FileStream(outputFile,FileMode.Open))
{
using (CryptoStream cs = new CryptoStream(fsInput,encryptor.CreateDecryptor(),CryptoStreamMode.Read))
{
int data;
while ((data = cs.ReadByte()) != -1)
{
file.WriteByte((byte)data);
}
}
}
}
}
file.Position = 0;
return file;
存储数据
foreach (var procedure in functionCollection.ScriptList)
{
XmlElement cl = xd.CreateElement("Sample");
XmlElement schemaName = xd.CreateElement("Schema");
XmlText schemaText = xd.CreateTextNode(procedure.Schema);
schemaName.AppendChild(schemaText);
cl.AppendChild(schemaName);
tables.AppendChild(cl);
database.AppendChild(tables);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。