使用PT_PERF排查线上慢SQL问题

背景 在我们线上的客户有一个实例,在每天固定的时间都会出现慢SQL的问题;该用户线上业务对于SQL执行的时间较为严格,执行时间超过150ms就认为是慢SQL。 在以往的排查经验中,认为这类慢SQL的问题一般都是锁等待的问题,或者是底层文件系统的IO抖动造成的;但是这次我们都排查过一番,出现慢SQL语句的锁等待很低;而且在底层的文件系统虽然偶尔会有一些长尾的慢IO的情况,但是和慢SQL出现的时间对不上。 后面我们尝试使用线上版本复现用户的这个场景,后来终于在模拟了线上用户执行S

使用PT_PERF排查线上慢SQL问题

背景 在我们线上的客户有一个实例,在每天固定的时间都会出现慢SQL的问题;该用户线上业务对于SQL执行的时间较为严格,执行时间超过150ms就认为是慢SQL。 在以往的排查经验中,认为这类慢SQL的问题一般都是锁等待的问题,或者是底层文件系统的IO抖动造成的;但是这次我们都排查过一番,出现慢SQL语句的锁等待很低;而且在底层的文件系统虽然偶尔会有一些长尾的慢IO的情况,但是和慢SQL出现的时间对不上。 后面我们尝试使用线上版本复现用户的这个场景,后来终于在模拟了线上用户执行S

MySQL · UNDO LOG的演进与现状

Undo Log的背景以及理论 数据库与普通文件系统的一个重要的区别就是;数据库可以在多种故障下仍然可以正确运行,保证系统以及数据的正确性;这些故障包括但不限于数据库系统本身故障,操作系统故障,以及存储介质故障等。那么数据库是如何在这些故障下面还能保证系统和数据的正确性的呢?主要靠Redo Log和Undo Log日志与WAL(Write Ahead Log)机制的配合来支持,其理论支持在论文《ARIES: a transaction recovery method supp