关于MYSQL的轮询与监控一点点小心得

本文介绍了在没有SQL依赖类的情况下,如何通过binlog实现对MYSQL数据更新的监控。作者分享了从开启MYSQL binlog,到解决轮询实时性与资源占用问题的心得,以及遇到的困难和解决方案,包括尝试触发器和binlog的方法,为面临类似问题的开发者提供参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

好久都没有动过编程这种东西了,之前用帝国CMS帮公司建了一个在线文档系统,文档转换也一直用第三方的,经常出一些问题,又没有源码可以改可以看的,时间过去久了,越来越麻烦,只能动手自己写一个。

这次自己写的时候是用C#的,之前没接触过,过程挺累的,基本语法都不懂。不过其它的查查资料也基本都搞定了。功能类与模块都写出来了。

差一个核心的功能:MYSQL的数据监控!

因为帝国CMS用的是MYSQL,所以也没太可能去换。

我要实现的功能就是写一个在线转换文档的程序,程序运行时监控MYSQL的数据更新,即有用户上传新文档或某个文档被修改时,通知程序执行转换任务;

因为使用频率不高,用轮询明显不好,间隔时间长的话实时性又不好,但间隔时间短极占资源;

在MSSQL里有一个sqldependcy类可以调用 ,可以实现监控数据的变化,onchange就好!

但MYSQL 查了两天资料,没用这东西,也尝试自己写这个类出来,也没成功。国外有个Devart.Data.MySql.dll,但要授权好像,试了一下可以用,但放到服务器上又出问题。还是自己研究。

在优快云里看到一般就两种方案,1、触发器;2、binlog;

触发器什么的看了看可能也要轮询,又放弃。只好用binlog。

下面进入正题,希望对碰到同样问题的人有点点帮助;

1、首先把mysql的binlog打开:

在mysql的安装目录下打开my.ini,

在[mysqld]下

添加一行:

log-bin=mysql-bin

重启一下mysql的服务。

这样,在mysql 的data目录下就会生成日志文件;

2、取得当前正在使用的日志文件(MYSQL每次重启会重新建一个文件)

Object binlog1 = DbHelperMySQL.GetSingle("show master status");

                
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值