MySQL的binlog日志记录的是所有的语句级别操作,包括修改操作和查询操作。在默认的配置下,MySQL会将所有的语句都记录到binlog文件中。
binlog的底层原理是使用了MySQL的二进制日志技术(Binary Logging)。当MySQL执行一条语句时,它会先将这条语句记录到内存中的binlog缓冲区中。当事务提交时,binlog缓冲区中的所有操作会被写入磁盘上的binlog文件中。
在binlog文件中,每个操作都会以二进制格式被记录下来。对于修改操作,binlog会记录修改的对象、修改前的值和修改后的值等信息。对于查询操作,binlog会记录查询的语句以及相应的结果集,但不会记录查询结果的每一条记录。
需要注意的是,由于binlog记录的是语句级别操作,因此在一些情况下可能会存在不一致的情况。例如,在使用了非事务性存储引擎的表中,由于MySQL不能保证每条语句的执行顺序,可能会导致binlog中的操作顺序和实际的执行顺序不一致。
综上所述,MySQL的binlog记录的是所有的语句级别操作,包括修改操作和查询操作。在binlog文件中,每个操作都以二进制格式被记录下来,binlog可以用于数据恢复、主从复制、增量备份等。