mysql统计类似SQL语句查询次数
vc-mysql-sniffer 工具抓取的sql分析。
1、先用shell脚本把所有enter符号替换为null,再根据语句前后的字符分隔语句
grep -Ev '# Time:|# User@Host' /tmp/tmp_vc_mysql.txt |sed 's/# Query_time.*/myxxxxx/g' |awk BEGIN{RS=EOF}'{gsub(/\\n/," ");print}'|awk BEGIN{RS=EOF}'{gsub(/myxxxxx/,"\\n");print}'
2、python实现替换无关字符串 vim analyze_sql.py
#!/usr/bin/python
#coding:utf8
# python analysis-vc-log.py 3315 | sort | uniq -c | sort -nr |head -n 10
import re
import sys
import os
import commands
if len(sys.argv) == 2:
logPath = sys.argv[1]
if not os.path.exists(logPath):
print ("file " + logPath + " does not exists.")
sys.exit(1)
else:
print ("Usage: " + sys.argv[0] + " logPath")
sys.exit(1)
logFo = open(logPath)
for line in logFo:
line = re.sub(r"\n","",line)
lineMatch = re.match(r".*",line,re.IGNORECASE)
if lineMatch:
lineTmp = lineMatch.group(0)
# remove extra space 把多个空格的替换成一个空格 \s+ 表示空格至少出现一次
lineTmp = re.sub(r"\s+", " ",lineTmp)
# replace values (value) to values (x) \s*表示有0或多个空格, .*表示匹配除了换行外任意多次, ?为非贪婪模式
lineTmp = re.sub(r"values\s*\(.*?\)", "values (x)",lineTmp)
# replace filed = 'value' to filed = 'x'  s*('|\")表示匹配单引或双引0或多次 \2表示应用第二个(...)分区,即 ('|\")  \\1可以写成r"\1" 其实只是\<number> 。表示应用第一个分组 (=|>|<|>=|<=)
lineTmp = re.sub(r"(=|>|<|>=|<=)\s*('|\").*?","\\1 'x'",lineTmp)
# replace filed = value to filed = x  s*  匹配0或多个空格  [0-9]+ 匹配一个或多个数字
lineTmp = re.sub(r"(=|>|<|>=|<=)\s*[0-9]+","\\1 x",lineTmp)
# replace like 'value' to like 'x'
lineTmp = re.sub(r"like\s+('|\").*?","like 'x'",lineTmp)
# replace in (value) to in (x)   (.*?\) 匹配括号内的任意内容
lineTmp = re.sub(r"in\s+\(.*?\)","in (x)",lineTmp)
# replace between '...' and '...' to between 'x' and 'x'
lineTmp = re.sub(r"between\s+('|\").*?\1\s+and\s+\1.*?\1","between 'x' and 'x' ",lineTmp)
# replace between ... and ... to between x and x
lineTmp = re.sub(r"between\s+[0-9]+\s+and\s+[0-9]+","between x and x ",lineTmp)    
# replace limit x,y to limit
lineTmp = re.sub(r"limit.*","limit",lineTmp)
print lineTmp
logFo.close()
3 执行 python analyze_sql.py tmp_vc_mysql.txt

转载于:https://www.cnblogs.com/vansky/p/8269670.html

mysql统计类似SQL语句查询次数相关推荐

  1. MySQL一条SQL语句查询多个科目的成绩

    MySQL一条SQL语句查询多个科目的成绩 SELECT pn.name,c.`cname`,SUM(CASE WHEN ps.coid='1' THEN sname END )AS 'domain' ...

  2. mysql 查询商品列表 显示tag_javascript - MYSQL——怎么一个sql语句查询出用户和用户商品的列表啊...

    我现在都是先写一个sql查出所有用户数组,然后foreach循环这个数组拿id查他的所有商品数据,有没好点儿的方法 回复内容: 我现在都是先写一个sql查出所有用户数组,然后foreach循环这个数组 ...

  3. MySQL中优化sql语句查询常用的30种方法

    为什么80%的码农都做不了架构师?>>>    1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 whe ...

  4. 浅谈 MySQL 中优化 SQL 语句查询常用的 30 种方法

    1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索 ...

  5. 浅谈MySQL中优化sql语句查询常用的30种方法

    1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索 ...

  6. Mysql中使用sql语句查询前一个天、前一周、前一月时间的方法

    查询一天: select * from 表名 where to_days(时间字段名) = to_days(now()); 昨天 SELECT * FROM 表名 WHERE TO_DAYS( NOW ...

  7. mysql中通过sql语句查询指定数据表的字段信息

      mysql数据库在安装完成时,自动创建了information_schema.mysql.test这三个数据库.其中,information_schema记录了创建的所有数据库的相关信息,因此可以 ...

  8. HIVE:窗口函数,用sql语句查询MySQL安装路径和版本

    数据大师: Jmx's Blog | Keep it Simple and Stupid! 猴子 - 知乎公众号(猴子数据分析)著有畅销书<数据分析思维>科普中国专家 回答数 647,获得 ...

  9. mysql hql查询语句_使用Query进行HQL语句查询和SQL语句查询

    HQL的语法比较简单,与普通SQL的区别之处是针对对象的不同,在查询语句中将sql中的表名替换成了sql中的持久化类名,因为hibernate机制是基于对象进行查询的. 不带参数的查询,语句是&quo ...

  10. sql 语句查询 mysql 版本号

    通过sql 语句查询 mysql 版本号 select version() from dual;

最新文章

  1. python自动化教程_Python自动化开发实战视频课程-全新基础篇_Python教程
  2. vue 中使用scss
  3. shell 自动回车_macos开机自动屏蔽独显
  4. python入门之函数调用第二关_Python入门之函数调用——第2关:函数正确调用 - 得到想要的结果...
  5. 作为相亲大户,程序猿为何普遍单身?
  6. php split to array,Split php varibale with JS into array
  7. apache2.4 中文乱码问题
  8. 思科CCNP认证和华为 HCIP认证路由交换技术的分类最全总结
  9. 参考文献标号字体_毕业论文参考文献格式字体
  10. 51单片机入门——蜂鸣器
  11. 2021年G2电站锅炉司炉最新解析及G2电站锅炉司炉作业考试题库
  12. Openwrt 镜像安装
  13. IT人才薪水“虚高” ,寡头垄断下小企业工程师告急[转]
  14. 文件锁(二)——文件锁的读锁和写锁
  15. JavaScript专题(一)变量提升与预编译,一起去发现Js华丽的暗箱操作
  16. Tab层切换02-兼容IE8和Chrome浏览器
  17. lua中 pairs 与 ipairs 区别
  18. oracle中sql查询增加自增序列号
  19. 什么叫反射以及反射的优缺点
  20. mfc editctrl限制输入

热门文章

  1. ios设置tabbar背景颜色_IOS UITabBarViewController 修改背景颜色
  2. DOTA 104个英雄416个技能、104首情诗
  3. 基于WxPython的批量图片缩放工具
  4. java枚举后面括号是什么意思_[Java] Java自定义枚举常量后括号的作用
  5. 混淆矩阵 confusion_matrix
  6. 百宝云常用运算符教程
  7. 从unity3d官网下载教程
  8. 分享NetSuite CRM成功实施案例!
  9. 什么是盒子模型,盒子模型,标准盒模型,怪异盒模型,两种盒模型的区别,box-sizing属性
  10. mysql报No Database Selected