我在数据库上做了一些实验。在这种情况下,每个查询都会从 TPCH 基准 ( select * from table;
) 的一个表中选择所有内容。在我解析每个查询之前和之后/proc/[pid]/io
,其中 [pid] 是数据库的进程。这些值的差异应该告诉我查询的 IO。这是 MySQL 的典型输出(秒,MB):
Query time RCHAR WCHAR READ_BYTES WRITE_BYTES CANCELLED_WB
query1.sql| 0.005| 0.00234| 0.00245| 0.00391| 0.00000| 0.00000
query2.sql| 0.008| 0.00043| 0.00058| 0.00391| 0.00000| 0.00000
query3.sql| 0.041| 1.37217| 1.37296| 1.37891| 0.00000| 0.00000
query4.sql| 0.270| 23.41719| 23.64796| 23.44531| 0.00000| 0.00000
query5.sql| 0.346| 23.43413| 23.58974| 23.46484| 0.00000| 0.00000
query6.sql| 1.413| 113.77629| 115.76173| 113.89453| 0.00000| 0.00000
query7.sql| 1.792| 140.49537| 168.27847| 140.64062| 0.00000| 0.00000
query8.sql| 8.847| 614.04820| 759.00238| 614.65625| 0.00000| 0.00000
Overall| 12.738| 916.54611| 1091.65626| 917.48828| 0.00000| 0.00000
我想知道WCHAR
(写字符)值来自哪里。我的查询“读取所有内容”而不是“写入任何内容”(由于“WRITE_BYTES”为空,实际上没有磁盘写入,而是写入缓存/缓冲区?)。我在这里想念什么?