个人亲历运维面试 - mysql部分

Mysql

1. binlog工作模式有哪些?各什么特

Row(行模式):日志中会记录成每一行数据被修改的形式,然后在slave端在对相同的数据进行修改

Statement(语句模式):每一条修改的数据都会完整的记录到数据库master的binlof里面,在slave上完整执行在master的sql语句

mixed(混合模式):结合前面两种模式,如果在工作中又使用函数或者触发器等特殊功能需求的时候,使用混合模式数据量大的时候考虑使用statement模式

2. mysql出现复制延迟有哪些原因,如何解决?

1、需要同步的从库数据太多

2、从库的硬件资源较差,需要提升

3、网络问题,需要提升网络带宽

4、主库的数据写入量较大,需要优配置和硬件资源

5、sql语句执行过长导致,需要优化

3. mysql中MlSAM与innoDB的区别

InnoDB支持事务,而MyISAM不支持事务。

innoDB支持行级锁,而MyISAM支持表级锁

InnoDB支持外键,而MyISAM不支持InnoDB不支持全文索引,而MyISAM支持

4. mysql优化

1. 设置最大连接数:set globle max_connections = 5000;

2. innodb_flush_log_at_trx_commit=1 会将重做日志缓冲写入磁盘,并且立即刷新

3. innodb_buffer_pool_size

 

5. MySQL索引的种类及工作原理

普通索引:最基本的索引,没有任何限制。

唯一索引:与普通索引类似,不同的是,索引列的值必须唯一,但允许有空值。

主键索引:它是一种特殊的唯一索引,不允许有空值。一张表只能有一个主键。

组合索引:就是将多个字段建到一个索引里

6. 如果发现CPU,或者IO压力很大,怎么定位问题

1、首先我会用top命令和iostat命令,定位是什么进程在占用cpu和磁盘io; 

2、如果是mysql的问题,我会登录到数据库,通过show full processlist命令,看现在数据库在执行什么sql语句,是否有语句长时间执行使数据库卡住;

3、执行show engine innodb status\G命令,查看数据库是否有锁资源争用;

4、查看mysql慢查询日志,看是否有慢sql;

5、找到引起数据库占用资源高的语句,进行优化,该建索引的建索引,索引不合适的删索引,或者根据情况kill掉耗费资源的sql语句等

 

posted @ 2020-03-25 10:31  Wshile  阅读(701)  评论(0编辑  收藏  举报