我有一个网络抓取工具,可以在抓取网页时将信息保存到数据库中。虽然它这样做,它还保存了其操作的日志文件,以及它遇到的任何错误到mysql数据库中的日志字段(字段变为64kb到100kb之间。它通过连接(使用mysql CONCAT函数)来实现。
这似乎工作正常,但我担心它对mysql数据库的cpu使用/影响。我注意到,网络爬行的执行速度比实施将日志保存到数据库之前要慢。
我从管理网页查看此日志文件,除了缓慢加载外,当前的实现似乎工作正常。有关加快这项工作或实施建议的任何建议吗?
答案 0 :(得分:1)
多次将100kb字符串读入内存,然后通过db将它们写入磁盘。当然你会经历减速!您正在做的每一部分都是执行内存,磁盘和CPU(特别是如果内存使用量达到系统最大值并且您开始交换到磁盘)。让我算一下你可能会降低整体网站性能的一些方法: