【发布时间】:2015-07-29 16:32:47
【问题描述】:
我在 MySQL 服务器上有两个数据库 A 和 B。
A 是原始数据库,B 是从 A 更改某些表的格式派生而来的。因此,对于 db A 中的每个 table_A,在 db B 中都有一个相应的表 table_B,对于 table_A 中的每一行,table_B 中都有一个相应的行,以不同的格式表示完全相同的表条目。
我很确定解释 A 和 B 之间的这种“格式差异”与我要问的问题无关。
我实际上使用 Java,JDBC 来连接 MySQL 服务器。
我有许多对 db A 的“SELECT”查询和对 db B 的等效查询。我想重复执行它们并计算一些指标,如下所示:
execute SELECT query on db A and calculate metrics;
execute equivalent SELECT query on db B and calculate metrics;
UPDATE data stored in db A and db B by a percentage
loop
最终目标是比较“相同”查询在两个孪生数据库上的性能,看看“格式差异”对查询性能有何影响。
我的问题:
-
如何计算查询执行的 CPU 时间?目前我做的是:
long startTime = System.currentTimeMillis(); ResultSet rs = stmt.executeQuery(QUERY); long time = System.currentTimeMillis() - startTime;这准确吗?
如何计算其他指标,例如内存使用、缓存使用、磁盘读取、磁盘写入、缓冲区获取
谁能建议任何其他指标来比较两个数据库上“相同”查询的性能?
【问题讨论】:
标签: mysql performance jdbc time cpu-usage