1、简述mysql主从复制原理?

(1) master将改变记录到二进制日志(binary log)中(这些记录叫做二进制日志事件,binary log events);

(2) slave将master的binary log events拷贝到它的中继日志(relay log);

(3) slave重做中继日志中的事件,将改变反映它自己的数据。


2、MySQL中有哪几种锁?哪个不会出现死锁?

答案:MySQL中有三种锁:表级锁、行级锁和页面锁。

表级锁是最简单的一种锁,每次操作是对整个表加锁,不会出现死锁,但并发度最低。

行级锁是最细粒度的一种锁,每次操作只对涉及的行加锁,可以支持高并发,但开销大,可能出现死锁。

页面锁是介于表级锁和行级锁之间的一种锁,每次操作对一个数据页加锁,可以减少锁冲突,但也可能出现死锁。


3、使用索引查询一定能提高查询的性能吗?为什么?

答案:索引就是为了提高查询性能而存在的,如果在查询中索引没有提高性能,只能说是用错了索引,或者讲是场合不同。


4、OLTP和OLAP的区别?应用场景?

答案:OLTP(on-line transaction processing)为联机事务处理。

OLAP(On-Line Analytical Processing)为联机分析处理。

两者简单的区别为OLTP是做事务处理,OLAP是做分析处理。

站在数据库的操作层面来看,OLTP主要是对数据的增删改,侧重实时性,OLAP是对数据的查询,侧重大数据量查询。

常见的业务系统如商场系统,ERP,客服系统,OA等系统都是基于OLTP开发的系统。

往往需要把过去一段时间内产生的数据拿出来进行统计分析,从中获取我们想要的信息,为公司做决策提供支持,我们管这类场景就叫做OLAP。