show VARIABLES like 'log_error'
show VARIABLES like 'long_query_time'
show VARIABLES like 'log_slow_queries'
show VARIABLES like 'log_output'
查看慢速查询时再哪里打出来的
SELECT * FROM mysql.slow_log
是可以看到慢查询发生时间的
SHOW MASTER STATUS
可以看到binlog打到哪里去了
mysql会使用第一个非空的唯一索引作为主键,使用_rowid可以查出每一列的主键,但是只适用于单一主键
从索引开始找的话一般就是找到Segment->extent-> page->row
段分为数据段,索引段和回滚段
一个extent一般是1M,每个extent中有16个page
/usr/local/mysql/data/test/t1.ibd
page level 0就代表是叶子节点
SHOW TABLE STATUS LIKE 'job_record%'
行的格式一般有Compact和Redundant两种,
每一列都有tx,和回滚指针这两个列
mysql的加锁实际上是从上往下加,上面的就是意向锁,各种意向锁都是兼容的,其他的只有共享锁之间互相是兼容的
SELECT * FROM information_schema.INNODB_TRX
就是把当前正在进行的事务找出来
SELECT * FROM information_schema.INNODB_LOCKS
找出当前的锁
快照读实际上不需要等待行锁的释放,
RC会去读最新一份数据
RR会去读事务开始时候的数据
当update的那一个事务没有commit的时候,都是会读出旧的那一个数据
一旦commit了,读出来的东西就是不一样的了
有两个方式可以获取行锁,lock in share mode, for update
每次获取递增都是select MAX(auto_inc_col) from t FOR UPDATE来找出来的
当没有索引的时候,是使用Next-Key Lock的
有一个rollback_on_timeout的值可以修改用来在死锁的时候回退