关于监控数据库的思考,
1.最长使用的方式是新建线程,定时查询数据库的记录,实现监控数据库的目的;
但这种方法时效率最低,消耗资源最高的方法;
2.写触发器,
这种方法对数据库的压力比较大,而且,当不同数据库之间传输数据的时候,可能会被影响,但小程序,单数据库的情况下,也是不错的选择。
但百度知道后,
触发器由于是隐藏的,无形中增加系统的复杂性,非DBA管理人员理解起来就会有困难,因为根本感觉不到它的存在。
再有,涉及到复杂的逻辑的时候,触发器的嵌套是避免不了的,如果再涉及几个存储过程,再加上事务等,很容易触发死锁,使用难度剧增。
所以,非常不建议使用触发器来监控数据库。
3.监控数据库日志,查看执行了哪些sql,从而判断数据库数据的变化情况,这种方式还没试过,以后找机会尝试一下(欠的债越来越多了)。
4.使用缓存来监控(比如redis),无论是集群,还是单服务器,这都是一个我觉着不错的方式,(虽然我也没试过。。。)。
以上,
为工作过程中产生的想法
时间: 2024-11-05 06:14:31