seconds_behind_master参数表示的是本地sql线程和io线程之间的差距时间!

这个时间的具体计算方法是根据复制过来的binlog(从机叫做中继日志)里面的timestamp进行对比,每个position都带有timestamp,利用当前sql线程当前pos的timestamp和io线程的timestamp进行对比,得出时间差,就是second_behind_master显示的值。

需要注意的是这个值并不能完全反映主从复制之间的延时,因为主从复制是异步操作(主服务器并不关心binlog是否被从服务器全部接受),可能主服务器已经有大量操作,但是从服务器的io线程并没有获取到这些操作,而从机的sql线程和io线程之间时间差又为0,此时你看到的值是不能准确反应复制情况的。另外mysql 5.1.67-log有一个bug,可以参考我的另外一篇博文http://qdjalone.blog.51cto.com/1222376/1352637,更好的反映了上面说的情况!