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 statusG命令,查看数据库是否有锁资源争用;
4、查看mysql慢查询日志,看是否有慢sql;
5、找到引起数据库占用资源高的语句,进行优化,该建索引的建索引,索引不合适的删索引,或者根据情况kill掉耗费资源的sql语句等