lj_w 2016-04-10 14:27 采纳率: 0%
浏览 1910

TCP接收数据,频繁操作数据库怎么解决?

1.数据库存储问题
由于tcp不定时不间断的上报数据,1秒10条左右,这样高频率的操作数据库一定是不合理的,那怎么来解决问题呢。
ps:我用TCP收集上报上来的ip地址(源IP+目的IP),如果已经存储了就更新访问次数,如果源源ip没有存储,就新增,一次会有多条源IP+目的IP;
我的想法是把处理逻辑放到存储过程中实现:
(1)数据进入临时表
(2)存储ip的A表与临时表通过sql比较,相同的插入,不同的更新访问次数。
(3)将A表的源IP过滤重复,生成一个新表,用于业务需要。
现在的效率是调用一次存储过程花费的时间是400ms左右,1秒可以存储2次。而存储过程的接口是可以支持批量插入的。所以需要一个缓存,把收集的记录缓存起来,批量执行效果更好。
但是,需要考虑几个问题:
1.缓存大小,根据存储过程一次执行批量更新的大小
2.执行存储过程的时机,2种情况,
(1)缓存达到限定大小。
(2)一段时间检查缓存是否有数据未提交。
(3)同时操作缓存问题。
批量执行没有实现,可以尝试一下看看,效果。

  • 写回答

4条回答 默认 最新

  • Dai444026042 2016-04-10 14:32
    关注

    是不是可以在程序中做一个缓存 达到一定数据量 或一定时间间隔才提交一次 不知道对时效性有没有要求。

    评论

报告相同问题?

悬赏问题

  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘