首页 数据库 mysql教程 Mysql数据状态监听探讨(攒人品)_MySQL

Mysql数据状态监听探讨(攒人品)_MySQL

May 27, 2016 pm 02:12 PM
更新时间 运行程序

bitsCN.com

年会前攒人品,你懂得!

应用场景:

长时间运行程序,需要几乎整表查询Mysql,还得在可容忍范围内响应数据变化。

 

方案一:通过Mysql自带的表更新时间

查询方案:SELECT TABLE_NAME,UPDATE_TIME FROM INFORMATION_SCHEMA.tables WHERE TABLE_SCHEMA='Palas_V4';

存在问题:innodb 不支持,需要更换数据库引擎;只支持表级判断(可以接受)。

优点:查询速度快。

变种解决方案:1、创建触发器,在表执行update/insert/delete 时更新UPDATE_TIME为当前时间戳;2、在数据库访问接口处增加程序逻辑来更新该时间戳。

 

方案二:在所有行增加更新时间戳字段

查询方案:判断是否修改只需查询该表最大的updatetime,增量更新仅需要查询大于上次查询时间的数据。

存在问题:表每行会增加4bytes的空间消耗,更新时间戳问题可通过mysql自身解决;不支持delete操作,如要删除需要增加是否有效字段来改变状态。

优点:可以做到行级的更新。

 

方案三:读取Mysql文件的系统修改时间

查询方案:获取E:/SqlData/data/Palas_V4/ Media.frm 的系统修改时间

存在问题:需要在Mysql所在服务器操作,或者需要远程访问它的权限,可能导致安全问题;只支持表级判断。

优点:速度快,不需要额外表空间或增加mysql负载。

变种解决方案:1、在Mysql所在服务器创建监控服务提供数据库状态信息。

 

方案选型:

优缺点分析:

方案一与二均需对数据库做出相应修改,一所做修改对业务逻辑不会有影响,但对Mysql的操作会增加一倍(实际修改需要8(可能是4)个字节每次的数据量)无网络传输;程序实现逻辑简单;在数据修改量不大的情况话对性能几乎没有影响,但修改后查询开销大。方案二对表空间的增长会变大,对业务逻辑会有较小的影响(不再支持删除),部分表还需要增加字段判断状态,修改后查询开销较小。方案三性能与一相差不大,但需要额外编程提供状态查询,时间和硬盘IO会增大(不显著)。

选型:

       根据实际情况,排除暂时不会遇到的问题,优先级排列如下:

方案三 -> 方案二 –> 方案一 (方案一排最后是由于太多触发器会导致表维护困难,更新引擎将使数据库性能降低)

 

Mysql 开启独立表空间:

1. 停掉mysql:  /etc/init.d/mysqld stop  

2. 改my.cnf的配置文件: innodb-file-per-table=1

3. 备份使用innodb引擎的数据库:  mysqldump -u tg -p tg >/home/6fan/tg.sql;  

4. 删除使用innodb的数据库,以及日志文件 。如果不删除使用innodb的数据库文件夹,启动不了innodb引擎。

5. 启动mysql : /etc/init.d/mysqld start 

6. 导入数据库: mysql -u root -p 

有图形化管理工具的在修改配置文件后直接备份需要监听的数据库,然后删除后恢复也是可以的。

 

构建文件监听与数据提供服务:

1、 在mysql服务器开启文件监听服务,提供get put方法(仅提供状态,数据需要自己查)

2、 Get方法在全局数据提供服务启动时调用,Put方法为主动向接受者声明哪些需要同步

 

构建全局数据提供服务:(Web Api 支持json和xml格式)

1、 启动时使用get获取所有文件状态;

2、 接受put的数据以启用数据更新(可改为查询时主动get);

3、 有调用者时返回数据;

4、 对数据进行压缩处理;保存以便传输

 

本文来自 NewIdea 的博客,作者 ziyunhx 。

原文地址:http://www.cnblogs.com/NewIdea/p/MysqlStatus.html

转载请注明出处,否则拒绝转载!

bitsCN.com
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

如何使用Alter Table语句在MySQL中更改表? 如何使用Alter Table语句在MySQL中更改表? Mar 19, 2025 pm 03:51 PM

本文讨论了使用MySQL的Alter Table语句修改表,包括添加/删除列,重命名表/列以及更改列数据类型。

如何为MySQL连接配置SSL/TLS加密? 如何为MySQL连接配置SSL/TLS加密? Mar 18, 2025 pm 12:01 PM

文章讨论了为MySQL配置SSL/TLS加密,包括证书生成和验证。主要问题是使用自签名证书的安全含义。[角色计数:159]

您如何处理MySQL中的大型数据集? 您如何处理MySQL中的大型数据集? Mar 21, 2025 pm 12:15 PM

文章讨论了处理MySQL中大型数据集的策略,包括分区,碎片,索引和查询优化。

哪些流行的MySQL GUI工具(例如MySQL Workbench,PhpMyAdmin)是什么? 哪些流行的MySQL GUI工具(例如MySQL Workbench,PhpMyAdmin)是什么? Mar 21, 2025 pm 06:28 PM

文章讨论了流行的MySQL GUI工具,例如MySQL Workbench和PhpMyAdmin,比较了它们对初学者和高级用户的功能和适合性。[159个字符]

如何使用Drop Table语句将表放入MySQL中? 如何使用Drop Table语句将表放入MySQL中? Mar 19, 2025 pm 03:52 PM

本文讨论了使用Drop Table语句在MySQL中放下表,并强调了预防措施和风险。它强调,没有备份,该动作是不可逆转的,详细介绍了恢复方法和潜在的生产环境危害。

您如何用外国钥匙代表关系? 您如何用外国钥匙代表关系? Mar 19, 2025 pm 03:48 PM

文章讨论了使用外国密钥来代表数据库中的关系,重点是最佳实践,数据完整性和避免的常见陷阱。

如何在JSON列上创建索引? 如何在JSON列上创建索引? Mar 21, 2025 pm 12:13 PM

本文讨论了在PostgreSQL,MySQL和MongoDB等各个数据库中的JSON列上创建索引,以增强查询性能。它解释了索引特定的JSON路径的语法和好处,并列出了支持的数据库系统。

如何保护MySQL免受常见漏洞(SQL注入,蛮力攻击)? 如何保护MySQL免受常见漏洞(SQL注入,蛮力攻击)? Mar 18, 2025 pm 12:00 PM

文章讨论了使用准备好的语句,输入验证和强密码策略确保针对SQL注入和蛮力攻击的MySQL。(159个字符)

See all articles