データベースでいくつかの実験を行います。この場合、すべてのクエリは、TPCH ベンチマークのテーブルの 1 つからすべてを選択します ( select * from table;
)。各クエリの前後に parse/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 char) 値はどこから来るのだろうか。私のクエリは、「何かを書き込む」のではなく「すべてを読み取る」(「WRITE_BYTES」がnullであるため、実際にはディスク書き込みはなく、キャッシュ/バッファに書き込みますか?)。ここで何が恋しいですか?