亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 操作系統 > 正文

通過Python進行MySQL表信息統計

2024-06-28 16:00:02
字體:
來源:轉載
供稿:網友

導讀在上一篇文章中簡單的介紹了使用python-MySQL-replication 來解析 MySQL binlog來完成實時統計的業務,當然,在現實的業務中不可能用的那么簡單的。
啰哩八說

今天的目的不是介紹真實的業務場景如何使用 python-mysql-replication,而是推出一枚<MySQL表信息統計>小工具(筆者通過python-mysql-replication實現的)

工具鏈接: https://github.com/daiguadaidai/mysql_binlog_stat

在之前我也是使用 @吳炳錫 大神的工具, 因為在了的時候感覺顯示的有點生澀因此在他的基礎上修改了一些重新展示了, 可是在用的時候還是不盡人意。

具體看之前筆者的文章: http://www.ttlsa.com/mysql/mysql-fields-when-time-split/

大神的工具: https://github.com/wubx/mysql-binlog-statistic

筆者重新展示的工具: https://github.com/daiguadaidai/mysql-binlog-statistic

二話不說直接展示如何使用1、查看幫助
[root@centos7 tmp]# python mysql_binlog_stat.py --helpusage: mysql_binlog_stat.py [-h] [--host HOST] [--port PORT]                            [--username USERNAME] [--passWord PASSWORD]                            [--log-file binlog-file-name]                            [--log-pos binlog-file-pos]                            [--server-id server-id] [--slave-uuid slave-uuid]                            [--blocking False/True] [--start-time start-time]                            [--sorted-by insert/update/delete] Description: The script parse MySQL binlog and statistic column. optional arguments:  -h, --help            show this help message and exit  --host HOST           Connect MySQL host  --port PORT           Connect MySQL port  --username USERNAME   Connect MySQL username  --password PASSWORD   Connect MySQL password  --log-file binlog-file-name                        Specify a binlog name  --log-pos binlog-file-pos                        Specify a binlog file pos  --server-id server-id                        Specify a slave server server-id  --slave-uuid slave-uuid                        Specify a slave server uuid  --blocking False/True                        Specify is bloking and parse, default False  --start-time start-time                        Specify is start parse timestamp, default None,                        example: 2016-11-01 00:00:00  --sorted-by insert/update/delete                        Specify show statistic sort by, default: insert

主要參數介紹:

--log-file: binlog 文件名稱

--log-pos: binlog 文件位置(從哪個位置開始解析)

--blocking: 是否需要使用阻塞的方式進行解析始終為 False 就好(默認就是False)

--start-time: 從什么時間開始解析

--sorted-by: 展示的結果通過什么來排序, 默認是通過 insert 的行數的多少降序排列, 設置的值有 insert/update/delete

2、解析 MySQL binlog
root@(none) 09:17:12>show binary logs; ------------------ ----------- | Log_name         | File_size | ------------------ ----------- | mysql-bin.000012 | 437066170 || mysql-bin.000013 | 536884582 || mysql-bin.000014 | 537032563 || mysql-bin.000015 | 536950457 || mysql-bin.000016 |  87791004 || mysql-bin.000017 |       143 || mysql-bin.000018 |       143 || mysql-bin.000019 |       143 || mysql-bin.000020 |       143 || mysql-bin.000021 |      1426 | ------------------ ----------- 10 rows in set (0.01 sec)  # 使用命令[root@centos7 tmp]# time python mysql_binlog_stat.py --log-file=mysql-bin.000012 --log-pos=120 --username=root --password=root --sorted-by='insert' [    {        "app_db.business_item_sku_detail": {            "row_insert_count": {                "market_PRice": 273453,                "sku_id": 273453,                "weight": 273453            },            "table_dml_count": {                "insert": 273453,                "update": 0,                "delete": 0            },            "row_update_count": {}        }    },    {        "app_db.business_item_sku_property": {            "row_insert_count": {                "sku_id": 273112,                "created": 273112,                "property_value_id": 273112,                "business_item_id": 273112,                "record_id": 273112,                "property_id": 273112            },            "table_dml_count": {                "insert": 273112,                "update": 0,                "delete": 0            },            "row_update_count": {}        }    },    {        "app_db.business_item_pic": {            "row_insert_count": {                "created": 270993,                "business_item_id": 270993,                "pic_id": 270993,                "pic_no": 270993,                "tmall_shop_id": 270993,                "pic_url": 270993            },            "table_dml_count": {                "insert": 270993,                "update": 0,                "delete": 0            },            "row_update_count": {}        }    },    {        "app_db.business_item": {            "row_insert_count": {                "guide_commission": 264803,                "commission_type": 264803,                "pstatus": 264803            },            "table_dml_count": {                "insert": 264803,                "update": 0,                "delete": 0            },            "row_update_count": {}        }    },    {        "test.t_binlog_event": {            "row_insert_count": {                "auto_id": 5926,                "dml_sql": 5926,                "dml_start_time": 5926,                "dml_end_time": 5926,                "start_log_pos": 5926,                "db_name": 5926,                "binlog_name": 5926,                "undo_sql": 5926,                "table_name": 5926,                "end_log_pos": 5926            },            "table_dml_count": {                "insert": 5926,                "update": 0,                "delete": 4017            },            "row_update_count": {}        }    },    {        "test.ord_order": {            "row_insert_count": {                "order_id": 184,                "pay_type": 181,                "amount": 184,                "create_time": 184,                "serial_num": 181            },            "table_dml_count": {                "insert": 184,                "update": 0,                "delete": 0            },            "row_update_count": {}        }    },    {        "test.t1": {            "row_insert_count": {                "id": 7,                "name": 7            },            "table_dml_count": {                "insert": 7,                "update": 2,                "delete": 2            },            "row_update_count": {                "name": 2            }        }    },    {        "test.area": {            "row_insert_count": {},            "table_dml_count": {                "insert": 0,                "update": 0,                "delete": 0            },            "row_update_count": {}        }    }] real    5m42.982suser    5m26.080ssys     0m8.958s

分析了2G多的binlog數據花了大概6分鐘時間速度,感覺速度還是不行啊 ^_^。

這邊說一下為什么不提供 --stop-log-file, --stop-log-pos, --stop-time 參數

主要是因為 pymysqlreplication 的解析如果是沒有解析到結尾,它在 master 上創建的鏈接會一直存在不會消失,需要人工去master kill掉相關的thread. 我問了作者但是并沒有得到很好的回應(估計也是我問問題的方式不對吧)

相關問題請看以下鏈接,(同時希望大家一起來解決一這問題, 來完善以下這個小程序)。

本文

免費提供最新linux技術教程書籍,為開源技術愛好者努力做得更多更好,開源站點:http://www.linuxprobe.com/


上一篇:awk RS ORS

下一篇:NTP時間同步

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
成人久久久久久| 久久久最新网址| 国产精品电影在线观看| 一区二区欧美日韩视频| 精品国产一区二区三区四区在线观看| 日韩欧美一区二区三区久久| 国产成人亚洲综合青青| 久久这里有精品视频| 一区二区三区视频观看| 国产人妖伪娘一区91| 亚洲国产精品免费| 日韩在线一区二区三区免费视频| 黑人欧美xxxx| 亚洲综合第一页| 97人洗澡人人免费公开视频碰碰碰| 日韩免费av一区二区| 亚洲美女又黄又爽在线观看| 国产欧美日韩91| 欧美极品少妇xxxxⅹ裸体艺术| 在线播放国产一区二区三区| 日韩成人在线视频网站| 成人h视频在线观看播放| 77777亚洲午夜久久多人| 中文字幕精品久久久久| 欧美日韩精品在线观看| 92国产精品久久久久首页| 45www国产精品网站| 国产精品久久在线观看| 亚洲欧美日韩在线高清直播| 青草青草久热精品视频在线观看| 亚洲国产另类久久精品| 日韩影视在线观看| 影音先锋欧美在线资源| 亚洲精品色婷婷福利天堂| 久久伊人精品视频| 久久国产精品久久久久久| 91色视频在线观看| 欧美激情亚洲一区| 久久久久亚洲精品| 97色在线观看免费视频| 国产精品视频一区二区三区四| 91牛牛免费视频| 性欧美xxxx| 7m第一福利500精品视频| 亚洲欧美国产高清va在线播| 久国内精品在线| 成人美女av在线直播| 国产一区二区三区中文| 亚洲色图av在线| 亚洲欧美另类国产| 欧美一级淫片播放口| 国产日本欧美一区二区三区在线| 日韩精品日韩在线观看| 欧美极品少妇与黑人| 欧美大片免费观看| 夜夜躁日日躁狠狠久久88av| 日韩av在线直播| 国产亚洲人成网站在线观看| 一区二区在线免费视频| 国产999在线观看| 精品成人国产在线观看男人呻吟| 国产免费观看久久黄| 日韩av成人在线观看| 国产成人精品一区二区| 国产精品第七十二页| 国产激情综合五月久久| 91精品视频在线免费观看| 911国产网站尤物在线观看| 国产一区二区三区在线| 国产91久久婷婷一区二区| 992tv成人免费视频| 久久成人18免费网站| 91精品国产综合久久香蕉的用户体验| 欧洲亚洲免费在线| 欧美激情videoshd| 68精品久久久久久欧美| 国产精品久久久久aaaa九色| 国产亚洲欧美视频| 成人在线视频网站| 亚洲第一精品福利| 国产乱人伦真实精品视频| 日韩一区二区精品视频| 北条麻妃在线一区二区| 国产99视频在线观看| 欧美体内谢she精2性欧美| 91在线播放国产| 日韩av资源在线播放| 久久99精品视频一区97| 最近中文字幕2019免费| 国产精品视频永久免费播放| 国产欧美日韩中文| 国产精品一二三视频| 日本不卡视频在线播放| wwwwwwww亚洲| 亚洲精品97久久| 九九久久久久久久久激情| 欧洲亚洲在线视频| 欧洲亚洲免费在线| 亚洲电影av在线| 久久香蕉频线观| 欧亚精品中文字幕| 91精品国产色综合久久不卡98口| 亚洲女人天堂网| 国产69精品久久久| 亚洲精品免费一区二区三区| 精品香蕉一区二区三区| 国产精品尤物福利片在线观看| 日韩欧美成人网| 狠狠爱在线视频一区| 国产一区二区三区高清在线观看| 青青草国产精品一区二区| 日韩av毛片网| 69av成年福利视频| 欧美激情一区二区三级高清视频| 欧美日韩国产第一页| 欧美性xxxx18| 日韩精品视频观看| 国产91精品久久久久久久| 久久福利网址导航| 一区二区三区四区精品| 久久99精品久久久久久青青91| 日韩网站免费观看高清| 亚洲第一中文字幕| 国产精品自拍偷拍视频| 色婷婷av一区二区三区久久| 91精品啪在线观看麻豆免费| 亚洲免费精彩视频| www.欧美三级电影.com| 成人妇女免费播放久久久| www.欧美精品一二三区| 日本一区二区在线免费播放| 欧美激情精品久久久久久蜜臀| 日韩电影网在线| 国产亚洲视频中文字幕视频| 久久精品国产69国产精品亚洲| 最近2019中文字幕mv免费看| 91精品久久久久久久久久久久久| 欧美精品中文字幕一区| 亚洲伊人久久大香线蕉av| 亚洲中国色老太| 国产一区二区三区在线免费观看| 亚洲欧洲日产国产网站| 精品人伦一区二区三区蜜桃免费| 性色av一区二区咪爱| 国产99在线|中文| 午夜精品久久久久久久久久久久久| 欧美视频二区36p| 久久久av亚洲男天堂| 国产精品日日做人人爱| 在线亚洲欧美视频| 国产免费久久av| 亚洲久久久久久久久久久| 精品国产一区二区三区久久狼黑人| 欧美电影免费观看大全| 7m第一福利500精品视频| 国产精品三级美女白浆呻吟| 日韩精品中文字幕视频在线| 久久九九全国免费精品观看| 91在线视频九色| 欧美国产日韩一区二区三区| 97在线免费视频| 91精品国产91久久久久| 91久久精品国产91久久| 成人在线视频网|