1.说一下MySQL数据库存储的原理
答:过程是一个可编程的函数,它在数据库中创建并保存。它可以有SQL语句和一些特殊的控制结构组成。当希望在不同的应用程序或平台上执行相同的函数,或者封装特定功能时,存储过程是过程通常有一下优点:
1)存储过程能实现较快的执行速度
2)存储过程允许标准组件是编程
3)存储过程可以用流控制语句编写,有很强的灵活性,可以完成复杂的判断和复杂的运算。
4)存储过程可被作为一种安全机制来充分利用
5)存储过程能过减少网络流量
2.redis和MySQL的区别:
redis是内存数据库,数据保存在内存中,速度快
MySQL是关系型数据库,持久化存储,存放在磁盘里面,功能强大。检索的话,会涉及到一定的IO,数据访问也就慢。
3.MySQL锁有几种:死锁是怎么产生的
1)表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。
2)行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度最高。
4)页面锁:开销和枷锁时间界于表锁和行锁之间;会出现死锁;锁定粒度界于表锁和行锁之间,并发度一般
三种锁各有各的特点,若仅从锁的角度来说,表级锁更适合于以查询为主,只有少量按索引条件更新数据的应用,如WEB应用:行级锁更适合于有大量按索引条件并发更新少量不同数据,同时又有并发查询的应用,如一些在线事务处理(OLTP)系统。