So… Baron blogged about wanting higher precision timers from the mysql binary and that running sed on the binary wasn’t cutting it. However… I am not one to give up that easily!
This is what LD_PRELOAD was made for! Evil nasty hacks to make your life easier!
By looking at the mysql.cc source code, I can easily work out how this works… I just have to override two calls! They being sysconf() (we fake how many ticks per second there are) and times() (let’s return a much higher precision number).
Combined with the sed hack on the binary to change the sprintf call to print out the higher precision number, we have:
mysql> select count(*) from t1; +----------+ | count(*) | +----------+ | 710720 | +----------+ 1 row in set (1.080110 sec)
Get it from my junkcode: http://www.flamingspork.com/junkcode/high_precision_mysql_timer.c
(or you can get it from http://paste.drizzle.org/show/364/)