1



1. 给数据库的隔离级别有哪些,各自含义是?MySQL默认的隔离级别是什么?

思路:

数据库事务的隔离级别有4个,由低到高依次为 Read uncommitted、Read committed、Repeatable read、Serializable,这四个级别可以逐个解决脏读、不可重复读、幻读这几类问题。


√: 可能出现    ×: 不会出现


脏读
不可重复读
幻读
Read uncommitted
Read committed--Sql Server , Oracle×

Repeatable read--MySQL

××

Serializable

×××


注:我们讨论隔离级别的场景,主要是在多个事务并发的情况下。


含义:
    Read uncommitted 读未提交
    Read committed 读提交
    Repeatable read 重复读
    Serializable 序列化




2



2. 一条 sql 的执行过程?


select * from A where id = 99;


思路:

主体分为两部分:Service 和 存储引擎 部分。


service连接器、缓存查询、分析器、优化器、执行器。存储过程、触发器、视图)等功能都在 Service 层处理。


存储引擎 负责数据的存储和提取。


执行过程如下图:


解析 BAT 大厂的经典面试题(中篇)_JAVA


具体执行其中细节,因为内容过多,可自行搜索(学习的基本)。

     



3



3. PHP如何运行shell脚本,配置文件在哪开启


思路:

php给我们提供了system(),exec(),passthru()这三个函数来调用外部的命令。虽然这三个命令都能执行linux系统的shell命令。


不同点

system() 输出并返回最后一行shell结果。

exec() 不输出结果,返回最后一行shell结果,所有结果可以保存到一个返回的数组里面。

passthru() 只调用命令,把命令的运行结果原样地直接输出到标准输出设备上。


相同点

都可以获得命令执行的状态码


例子:

system("/usr/a.sh"); 

(1)首先是 要关掉 安全模式 safe_mode = off

(2)然后在看看 禁用函数列表


disable_functions = proc_open, popen, exec, system, shell_exec, passthru


(3)这里要把 exec 去掉

(4)重启 服务器 就OK了 




恭喜你,又读完了一篇文章。


在这里,希望你看完的 每篇文章 都能对自己有所提升(哪怕是帮助你再次巩固记忆)。



解析 BAT 大厂的经典面试题(中篇)_JAVA_02



解析 BAT 大厂的经典面试题(中篇)_JAVA_03

解析 BAT 大厂的经典面试题(中篇)_JAVA_04