82、下面员工 3 的薪水大于其主管的薪水,一条 SQL 找到薪水比下属低的主管
id username salary pid
1 a 3000 null
2 b 8000 null
3 c 5000 1
4 d 6000 3
SELECT a.*,b.*
FROM `user` as a
LEFT JOIN `user` as b ON a.pid = b.id AND a.salary > b.salary
WHERE b.id > 0;
82、在一个坐标系内有一个 N 个点组成的多边形,现在有一个坐标点,写代码或思路来判断这个点是否处于多边形内
83、数据库如果出现了死锁,你怎么排查,怎么判断出现了死锁?
84、写一个一个程序来查找最长子串
85、分析一个问题:php-fpm 的日志正常,但客户端却超时了,你认为可能是哪里出了问题,怎么排查? 检查 nginx log,请求是否达到 nginx 和是否正常转发给 php-fpm
86、nginx 的工作流程是什么样的,可以画图描述
87、进程间通信方式有哪些 1) 管道 管道分为有名管道和无名管道 无名管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系一般指的是父子关系。无明管道一般用于两个不同进程之间的通信。当一个进程创建了一个管道,并调用 fork 创建自己的一个子进程后,父进程关闭读管道端,子进程关闭写管道端,这样提供了两个进程之间数据流动的一种方式。 有名管道也是一种半双工的通信方式,但是它允许无亲缘关系进程间的通信。
2) 信号量 信号量是一个计数器,可以用来控制多个线程对共享资源的访问.,它不是用于交换大批数据,而用于多线程之间的同步。它常作为一种锁机制,防止某进程在访问资源时其它进程也访问该资源。因此,主要作为进程间以及同一个进程内不同线程之间的同步手段.
3) 信号 信号是一种比较复杂的通信方式,用于通知接收进程某个事件已经发生.
4) 消息队列 消息队列是消息的链表,存放在内核中并由消息队列标识符标识。消息队列克服了信号传递信息少,管道只能承载无格式字节流以及缓冲区大小受限等特点。消息队列是 UNIX 下不同进程之间可实现共享资源的一种机制,UNIX 允许不同进程将格式化的数据流以消息队列形式发送给任意进程。对消息队列具有操作权限的进程都可以使用 msget 完成对消息队列的操作控制。通过使用消息类型,进程可以按任何顺序读信息,或为消息安排优先级顺序.
5) 共享内存 共享内存就是映射一段能被其他进程所访问的内存,这段共享内存由一个进程创建,但多个进程都可以访问。共享内存是最快的 IPC (进程间通信) 方式,它是针对其它进程间通信方式运行效率低而专门设计的。它往往与其他通信机制,如信号量,配合使用,来实现进程间的同步与通信.
6) 套接字:可用于不同及其间的进程通信
88、主从复制,从服务器会读取到主服务器正在回滚的数据吗?主数据库写成功,从服务器因为一些原因写失败,最后会出现什么情况?主从复制如果键冲突怎么办? 不会;主从数据不一致;正常是不会出现这种情景,具体看情况,是否可以修复,恢复到之前的时间点,然后追回同步。
89、事务有几种隔离级别?事务的隔离级别是怎么实现的?
读未提交(read-uncommitted)
不可重复读(read-committed)
可重复读(repeatable-read)
串行化(serializable)
90、什么是 B + 树,请画 b + 树的结构
91、mysql 中的字符集,客户端与数据库不一致,怎么办?MYSQL 中字符串到显示到界面,字符转换的过程是怎样的?数据库中的字符集是 latin1,你现在将 utf8 的字符串存到 latin1 字符集的数据库表,你能将 utf8 的字符串存进去吗?假如你说能存,追问:能否恢复?假如能,那怎么恢复?
92、
写一段代码,找到所有子集合,如 [a,b,c] 的子集合有 {},{a},{b},{c},{ab},{ac},{abc}
93、
['a'=>200,'b'=>100,'c'=>100],写一个自定义排序函数,按值降序,如果值一样,按键排序
冒泡排序
94、设计一个缓存系统,可以定期或空间占满之后自动删除长期不用的数据,不能使用用遍历。 我当时的答案是用链表来存,缓存命中就将该缓存移到链表头,然后链表尾就都是冷数据了。 我记得之前是在哪里看过这个设计,但我忘记在连接了,请知道朋友的把连接贴上来。
95、
== 和 === 的区别,写出以下输出:"aa"==1,"bb"==0,1=="1"
== 等于,不需要对比数据类型
=== 全等,需要对比类型
false,true
96、一个排序好的数组,将它从中间任意一个位置切分成两个数组,然后交换它们的位置并合并,合并后新数组元素如:20,21,22,25,30,6,7,8,18,19,写一个查询函数来查找某个值是否存在。
97、设计一个树形结构,再写一个函数对它进行层序遍历
98、
'$var' 和 "$var" 的区别
双引号串中的内容可以被解释而且替换,而单引号串中的内容总被认为是普通字符。
在单引号串中甚至反斜杠也失去了他的扩展含义(除了插入反斜杠 和插入单引号 ')。所以,当你想在字串中进行变量代换和包 含 n(换行符)等转义序列时,你应该使用双引号。单引号串可以用在其他任何地方,脚本中使用单引号串处理速度会更快些。
99、self 和 static 的区别 static:如果在子类中重写了父类中的 static 方法、属性,父类就会去访问了子类的 static 方法
self: 是类内指针,不管子类有没有重写过父类中的方法、属性都指向本类的静态方法、属性 100、PHP 的协程以及用途
101、描述 autoload 的机制
(编辑:好传媒网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|