DELIMITER $$ set @stmt = 'select userid,username from myuser where userid between ? and ?'; prepare s1 from @stmt; set @s1 = 2; set @s2 = 100; execute s1 using @s1,@s2; deallocate prepare s1; $$ DELIMITER ;
Set profiling=1; Select * From MyTable where DictID = 100601000004; Select DictID from MyTable limit 1,100; Select DictID from MyTable limit 2,100; /*從limit 1,100 到limit 100,100 此處省略重復代碼*/ ...... Select DictID from MyTable limit 100,100; SELECT query_id,seq,STATE,10000*DURATION FROM information_schema.profiling INTO OUTFILE 'd:/NormalResults.csv' FIELDS TERMINATED BY ',' LINES TERMINATED BY '/n';
第二個sql文件 StmtQuery.sql
復制代碼 代碼如下:
Set profiling=1; Select * From MyTable where DictID = 100601000004; set @stmt = 'Select DictID from MyTable limit ?,?'; prepare s1 from @stmt; set @s = 100; set @s1 = 101; set @s2 = 102; ...... set @s100 =200; execute s1 using @s1,@s; execute s1 using @s2,@s; ...... execute s1 using @s100,@s; SELECT query_id,seq,STATE,10000*DURATION FROM information_schema.profiling INTO OUTFILE 'd:/StmtResults.csv' FIELDS TERMINATED BY ',' LINES TERMINATED BY '/n';
做幾點小說明: 1. Set profiling=1; 執(zhí)行此語句之后,可以從information_schema.profiling這張表中讀出語句執(zhí)行的詳細信息,其實包含不少內(nèi)容,包括我需要的時間信息,這是張臨時表,每新開一個會話都要重新設置profiling屬性才能從這張表中讀取數(shù)據(jù)