gpt4 book ai didi

java - 将数据记录到文件服务器上的文件还是更好地使用 MySQL?

转载 作者:行者123 更新时间:2023-11-29 07:43:22 24 4
gpt4 key购买 nike

我为我的工作(大学的 IT 支持)编写了一个小程序,用于记录收到的所有查询并稍后对其进行评估。由于不止一台计算机同时接收查询,因此程序必须同时在多台 PC 上运行。目前我们无法拥有自己的服务器(例如 MySQL),因此我的解决方案是编写一个程序,将查询保存到文件服务器上的单个文件中。该文件使用 myStatFile = new File(myFilepath + "/data/statistic.dat"); 打开,并使用 in = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(myFile, true)) 写入文件)、“UTF-8”));。它工作得很好,但随着 statistic.dat 文件变得越来越大,程序需要更多时间来打开文件、写入文件并关闭它。

所以我对更有经验的程序员的问题是:是否有更有效的方法来做到这一点,或者是提高性能的唯一可能,以获得具有 MySQL 等数据库的服务器?有没有人看到另一种不使用服务器而是使用简单文件服务器的方法?

编辑:首先,我感谢所有回答我问题的人。我知道这是一个非常广泛的问题,有很多解决方案,但在阅读了您的答案后,我知道什么是可能的以及现在要走的路。谢谢!

最佳答案

您已在 FileOutputStream 构造函数中将第二个参数设置为 true。这指示流将新数据附加到文件中。

随着文件变大,这不会减慢速度。 Windows 和 Linux/BSD/Unix 传统操作系统确实非常有效地处理文件附加。您应该尽快打开、写入和关闭。文件打开时间不要超过所需时间。

您可以安排 Java 程序在写入文件时锁定该文件。这将防止多个用户(您和您的同事)尝试同时追加。看这里。 How can I lock a file using java (if possible)

您仍然应该考虑为此应用程序使用数据库,但不是因为将记录附加到文件很慢。

顺便说一句,有几个很好的免费(像演讲一样免费,像小猫一样免费)支持台票务 Web 应用程序可用。

关于java - 将数据记录到文件服务器上的文件还是更好地使用 MySQL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28477602/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com