mysql慢日志查询模块的测试[python]
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了mysql慢日志查询模块的测试[python],小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含7839字,纯文字阅读大概需要12分钟。
内容图文
![mysql慢日志查询模块的测试[python]](/upload/InfoBanner/zyjiaocheng/534/3b5e540636a046db92fb21c6e6fcb686.jpg)
rds 提供给用户可以查询到慢查询语句的日志的功能,为此我要开展相应的测试,以下是测试的一些记录 前置条件,需要构造一些可以进行慢日志查询的元数据 *************************** 1. row *************************** id: 1 age: 120 name: uCTOGsiaYDVeH
rds 提供给用户可以查询到慢查询语句的日志的功能,为此我要开展相应的测试,以下是测试的一些记录
前置条件,需要构造一些可以进行慢日志查询的元数据
*************************** 1. row *************************** id: 1 age: 120 name: uCTOGsiaYDVeHZCkamzqWFoSVxuPNCWZFXNRrrytcDVVnLKEfjtFeaTwwxcAyVBvDNIMYDCxAkizAYQFETEulJmZoPeTJsABKnJLspDvYNbLxsiBYiYYzjzcgmt_created: 2012-09-11 14:23:21 msg: uCTOGsiaYDVeHZCkamzqWFoSVxuPNCWZFXNRrrytcDVVnLKEfjtFeaTwwxcAyVBvDNIMYDCxAkizAYQFETEulJmZoPeTJsABKnJLspDvYNbLxsiBYiYYzjzcuCTOGsiaYDVeHZCkamzqWFoSVxuPNCWZFXNRrrytcDVVnLKEfjtFeaTwwxcAyVBvDNIMYDCxAkizAYQFETEulJmZoPeTJsABKnJLspDvYNbLxsiBYiYYzjzcuCTOGsiaYDVeHZCkamzqWFoSVxuPNCWZFXNRrrytcDVVnLKEfjtFeaTwwxcAyVBvDNIMYDCxAkizAYQFETEulJmZoPeTJsABKnJLspDvYNbLxsiBYiYYzjzc
类似如上数据20万条。
构造代码片段如下:
1.首先要创建一张表
122 123 sql = 'CREATE TABLE if not exists t1(id int unsigned primary key auto_increment not null , age tinyint unsigned , name VARCHAR(128) , gmt_created dat etime NOT NULL , msg text)' try: 125 cursor.execute(sql) 126 except Exception, e: 127 print ("excute %s error,"%sql, e)
2.通过多线程插入数据,插入数据的时候age是一定范围内的随机数,msg,name为一定规则的随机字符串
67 def insert( cursor , svr , ibcx ) : 68 commit_num = 500 69 print bcolors.OKGREEN + time.strftime( '%Y-%m-%d %H:%M:%S' , time.localtime() ) + ' ' + svr + ' sarting insert into for 50000 --> %d --> 500' % ( ibc x ) + bcolors.ENDC 70 isql = "INSERT INTO t1( age , name , gmt_created , msg ) VALUES" 71 cursor.execute('BEGIN') 72 for v in xrange( commit_num ) : 73 age = random.randint( 1 , 128 ) 74 #import pdb 75 #pdb.set_trace() 76 rndstr = randstr( age ) 77 #print '*************',rndstr 78 sql = '( ' + str( age ) + ' , \'' + rndstr + '\''+ ',\''+time.strftime( '%Y-%m-%d %H:%M:%S' , time.localtime() ) + '\' , \'' + rndstr*3 +'\')' 79 if v == 0 : 80 isql = isql + sql 81 else : 82 isql = isql + ' , ' + sql 83 cursor.execute( isql ) 84 cursor.execute( 'COMMIT' ) 85 86 def init( cursor , svr ) : 87 timestamp = time.time() 88 pool_num = 50000 89 ibcx = 0 90 for x in xrange( 100 ) : 91 ibcx += 500 92 insert( cursor , svr , ibcx ) 93 print bcolors.WARNING + time.strftime( '%Y-%m-%d %H:%M:%S' , time.localtime() ) + ' ' + svr + ' Init_data successful using time %d seconds' % ( i nt( time.time() ) - int( timestamp ) ) + bcolors.ENDC
调用插入数据的多线程
if sys.argv[1] in ( 'init' , 'o' ) : 131 print bcolors.OKBLUE + time.strftime( '%Y-%m-%d %H:%M:%S' , time.localtime() ) + ' Start initization table Data' + bcolors.ENDC 132 threading.Thread( target = init , args = ( cursor , conn_addr ) ).start()
3. 亮点:进行复杂 的可以产生慢日志的查询,主要sql如下
2012-09-11 16:04:53All Threding exit 2012-09-11 16:04:53 SELECT count(distinct name) msg from t1 where age between 1 and 20000 union all SELECT count(distinct name) msg from t1 where age between 5 and 20000 2012-09-11 16:04:57 SELECT name,msg,age from t1 where substring(msg,30,50) = substring(name,2,22) order by gmt_created desc 2012-09-11 16:04:58 SELECT age from t1 group by right(name,50) 2012-09-11 16:05:00 SELECT count(*) from t1 2012-09-11 16:05:00 SELECT DISTINCT substring(10,50) FROM t1 2012-09-11 16:05:00 SELECT count(distinct name) msg from t1 where age between 1 and 20000 union all SELECT count(distinct name) msg from t1 where age between 5 and 20000 2012-09-11 16:05:02 SELECT name,msg,age from t1 where substring(msg,30,50) = substring(name,2,22) order by gmt_created desc 2012-09-11 16:05:02 SELECT age from t1 group by right(name,50) 2012-09-11 16:05:05 SELECT count(*) from t1 2012-09-11 16:05:05 SELECT DISTINCT substring(10,50) FROM t1 2012-09-11 16:05:05 SELECT count(distinct name) msg from t1 where age between 1 and 20000 union all SELECT count(distinct name) msg from t1 where age between 5 and 20000 2012-09-11 16:05:10 SELECT name,msg,age from t1 where substring(msg,30,50) = substring(name,2,22) order by gmt_created desc 2012-09-11 16:05:10 SELECT age from t1 group by right(name,50) 2012-09-11 16:05:12 SELECT count(*) from t1 2012-09-11 16:05:12 SELECT DISTINCT substring(10,50) FROM t1 2012-09-11 16:05:12 SELECT count(distinct name) msg from t1 where age between 1 and 20000 union all SELECT count(distinct name) msg from t1 where age between 5 and 20000 2012-09-11 16:05:18 SELECT name,msg,age from t1 where substring(msg,30,50) = substring(name,2,22) order by gmt_created desc 2012-09-11 16:05:19 SELECT age from t1 group by right(name,50) 2012-09-11 16:05:21 SELECT count(*) from t1 2012-09-11 16:05:21 SELECT DISTINCT substring(10,50) FROM t1 2012-09-11 16:05:21 SELECT count(distinct name) msg from t1 where age between 1 and 20000 union all SELECT count(distinct name) msg from t1 where age between 5 and 20000 2012-09-11 16:05:25 SELECT name,msg,age from t1 where substring(msg,30,50) = substring(name,2,22) order by gmt_created desc 2012-09-11 16:05:25 SELECT age from t1 group by right(name,50) 2012-09-11 16:05:27 SELECT count(*) from t1 2012-09-11 16:05:27 SELECT DISTINCT substring(10,50) FROM t1 2012-09-11 16:05:27 SELECT count(distinct name) msg from t1 where age between 1 and 20000 union all SELECT count(distinct name) msg from t1 where age between 5 and 20000 2012-09-11 16:05:31 SELECT name,msg,age from t1 where substring(msg,30,50) = substring(name,2,22) order by gmt_created desc 2012-09-11 16:05:31 SELECT age from t1 group by right(name,50) 2012-09-11 16:05:34 SELECT count(*) from t1 2012-09-11 16:05:34 SELECT DISTINCT substring(10,50) FROM t1 2012-09-11 16:05:34 SELECT count(distinct name) msg from t1 where age between 1 and 20000 union all SELECT count(distinct name) msg from t1 where age between 5 and 20000 2012-09-11 16:05:35 SELECT name,msg,age from t1 where substring(msg,30,50) = substring(name,2,22) order by gmt_created desc 2012-09-11 16:05:35 SELECT age from t1 group by right(name,50) 2012-09-11 16:05:37 SELECT count(*) from t1 2012-09-11 16:05:37 SELECT DISTINCT substring(10,50) FROM t1 2012-09-11 16:05:38 SELECT count(distinct name) msg from t1 where age between 1 and 20000 union all SELECT count(distinct name) msg from t1 where age between 5 and 20000 2012-09-11 16:05:43 SELECT name,msg,age from t1 where substring(msg,30,50) = substring(name,2,22) order by gmt_created desc 2012-09-11 16:05:43 SELECT age from t1 group by right(name,50) 2012-09-11 16:05:45 SELECT count(*) from t1 2012-09-11 16:05:45 SELECT DISTINCT substring(10,50) FROM t1 2012-09-11 16:05:45 SELECT count(distinct name) msg from t1 where age between 1 and 20000 union all SELECT count(distinct name) msg from t1 where age between 5 and 20000 2012-09-11 16:05:49 SELECT name,msg,age from t1 where substring(msg,30,50) = substring(name,2,22) order by gmt_created desc 2012-09-11 16:05:50 SELECT age from t1 group by right(name,50) 2012-09-11 16:05:52 SELECT count(*) from t1 2012-09-11 16:05:52 SELECT DISTINCT substring(10,50) FROM t1 2012-09-11 16:05:52 SELECT count(distinct name) msg from t1 where age between 1 and 20000 union all SELECT count(distinct name) msg from t1 where age between 5 and 20000 2012-09-11 16:05:56 SELECT name,msg,age from t1 where substring(msg,30,50) = substring(name,2,22) order by gmt_created desc 2012-09-11 16:05:56 SELECT age from t1 group by right(name,50) 2012-09-11 16:05:58 SELECT count(*) from t1
4.进行实际慢日志查询和采集给用户的慢日志进行对比判断是否正确
use mysql
select * from slow_log;
实际结果从rds元数据查找两者进行对比测试
内容总结
以上是互联网集市为您收集整理的mysql慢日志查询模块的测试[python]全部内容,希望文章能够帮你解决mysql慢日志查询模块的测试[python]所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。