linpyi 2009-11-26 16:19
浏览 294
已采纳

I/0读写快还是插入数据库快

LOG的输出是利用I/0写在硬盘上速度快还是插入数据库快.

[b]问题补充:[/b]
我想做日记优化,没什么思路,各位给点思路
情况描述
1.老式系统,LOG采用的是简单的流读取和写的操作
2.log采用了synchronized方式
3.每天有大概1G的LOG生成.

我的想法是采用了同步的话肯定占据了大量的系统资源,LOG采用的是流读入和读出,如在LOG很大的情况下读取和写入也会占据很大的资源.如果不使用同步,多用户使用的话可能LOG会打的很乱.

是否有必要用开源的LOG来替换掉,还是在现有的基础上进行修正.
[b]问题补充:[/b]
在现有项目不可能做大范围改动,只能修改LOG接口,把原来使用流输入输出的改为LOG4J的输入输出.

但我怕有点画蛇添足,更影响效率

  • 写回答

5条回答 默认 最新

  • 宁静-夏天 2009-11-27 13:35
    关注
    io写硬盘       
    

    优势:本地文件系统,不需要通过jdbc驱动序列化进行网络传输,不存在网络问题

    劣势:跟硬盘性能有关,没有优化(当然自己可以封装,例如:使用内存缓存,然后批量触发,但这样会占用少量内存资源,也比较麻烦)

    存数据库
    

    优势:如果连接已经存在,客户端无需关心服务端的处理(cilent发送过去 ->服务端缓存-〉结束),无需像写硬盘等待写入结束。自己负责事情少,检索方便!

    劣势:网络问题,如果连接不存在,有连接数据库的开销

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?