我爱编程

PHP面试问题总结

2018-06-21  本文已影响64人  墨入烟松

长路漫漫,唯键作伴。分享一下近期面试的问题,也是复盘一下。


1、MySQL 事务嵌套 ,内层事务提交后,外层事务会怎样?

Mysql是不支持嵌套事务的,开启了一个事务的情况下,再开启一个事务,会隐式的提交上一个事务。也就是说,如果在内层事务开启的时候,外层事务会自动commit,rollback不会起到作用。

2、MySQL Innodb引擎 锁级别为行锁,SQL语句加排它锁(for update),这两种锁有什么区别,原理是什么?

MySQLInnodb锁的详解

Innodb支持行级锁,myisam支持表级锁。

行锁分 共享锁 和 排它锁。

共享锁又称:读锁。当一个事务对某几行上读锁时,允许其他事务对这几行进行读操作,但不允许其进行写操作,也不允许其他事务给这几行上排它锁,但允许上读锁。

排它锁又称:写锁。当一个事务对某几个上写锁时,不允许其他事务写,但允许读。更不允许其他事务给这几行上任何锁。包括写锁

上共享锁的写法:lock in share mode

例如: select  math from zje where math>60 lock in share mode;

上排它锁的写法:for update

例如:select math from zje where math >60 for update;

3、MySQL 什么情况会出现死锁,怎么解决?

MySQL 死锁情况分析

4、int(1)和int(10)的区别是什么?

int(1)和int(10)的区别 

5、varchar(20)和varchar(100)的区别是什么,为什么varchar(20)要比varchar(100)好一点?

数据库在进行操作的时候,有些情况下会用到临时表,而临时表的内存分配就是根据数据表字段所设置的大小进行分配的,所以说,会节省很多空间。

如果设置varchar(5),而insert进去的值是十个汉字的话,会截取前五个字录入。

2018.6.21  后续待补

上一篇 下一篇

猜你喜欢

热点阅读