我想写一个工具来维护超过5秒的查询的历史记录。
工具后端设置如下:
为了使其“智能化”,我希望只保留独特的查询。我的意思是,假设我有以下查询:
a)
b)
基本上,我想存储如下查询:
这将使得检查有多少相同类型的查询更加容易。 我的工具需要做的是:对where子句进行规范化处理,即在关键字WHERE处进行拆分。如何规范化/标准化where子句呢? 有很多比较运算符,我不知道如何轻松进行字符串操作。目前我不考虑多个where子句。 我认为自己擅长使用Python、MySQL(但愿意尝试任何可以完成任务的工具)。 我的备选计划是基于select,将查询标签列添加到QUERY_META表中。它将作为一个伪分组列!这里也存在一些问题,但是在此输入所有内容将会让本来已经很长的帖子变得更长。 由于工具的受众和一些系统限制,我无法使用慢查询日志来实现此目的。 如果已经有这样的工具,请指引我到相关位置,因为我难以确定要搜索什么。
工具后端设置如下:
Table1:QUERY_META
queryId int() (PK)
query text
regDate date
Table2: QUERY_STAT
queryId: int() (FK)
runDate: date (date of Run)
avgTimeTaken:int()
noOfRuns: int()
为了使其“智能化”,我希望只保留独特的查询。我的意思是,假设我有以下查询:
a)
SELECT a,b,c from table1 where x='x1' and y != 'y1';
(10秒)b)
SELECT a,b,c from table1 where x='x2' and y != 'y2';
(10秒)基本上,我想存储如下查询:
SELECT a,b,c from table1 where x = <x> and y != <y>;
这将使得检查有多少相同类型的查询更加容易。 我的工具需要做的是:对where子句进行规范化处理,即在关键字WHERE处进行拆分。如何规范化/标准化where子句呢? 有很多比较运算符,我不知道如何轻松进行字符串操作。目前我不考虑多个where子句。 我认为自己擅长使用Python、MySQL(但愿意尝试任何可以完成任务的工具)。 我的备选计划是基于select,将查询标签列添加到QUERY_META表中。它将作为一个伪分组列!这里也存在一些问题,但是在此输入所有内容将会让本来已经很长的帖子变得更长。 由于工具的受众和一些系统限制,我无法使用慢查询日志来实现此目的。 如果已经有这样的工具,请指引我到相关位置,因为我难以确定要搜索什么。