mysql

1.谈谈你在写sql语句需要注意有哪些点?

2.你刚才一直在提索引,把你知道的关于索引的一些技巧说下

3.索引底层是什么数据结构?

4.为什么用的是B+树,不能使用红黑树或者其他的?

5.你知道索引下推吗?

6.假设现在有人操作数据库,不小心执行错了语句,误删除了很多数据,这时候能恢复吗?咋么恢复。

7.为什么不能设置成 statement ?

8.你刚才说到主从,那你说说主从运行的机制吧

9.你知道主从延迟吗?有些时候延迟的时间还会很长。遇到这种情况咋么办?

设计模式

你知道哪些设计模式,你平常有使用到吗?可以结合你的业务场景说下吗?

手写算法

给定一个已排序的数组和一个指定值,返回指定值在数组中的下标位置,如果不存在,返回把给定值插入到数组之后的下标位置。注意时间复杂度。

答:

    function searchInsert($nums, $target) {
        if (!count($nums))  return 0;
        $l=0;
        $r = count($nums)-1;
        while ($l <= $r){
            $middle = $l + (($r - $l) >> 1);
            if ($nums[$middle] == $target) return $middle;
            if ($nums[$middle] < $target){
                $l = $middle+1;
            }else{
                $r = $middle-1;
            }    
        }
        return $l;
    }
登录后复制

典型的可以使用二分,时间复杂度 O(log2n)。空间复杂度O(1)。

网络

1.传输层主要有哪些协议?

2.你能大体说说 TCP 的三次握手吗?

4.为什么需要三次握手?

并发

假设现在有多个入口可以同时使用一个账户操作,这个账户只有十块钱,有哪些方法可以使得不超扣消费?开放性题目,只要能解决问题的就是好方案,没有唯一答案。

设计

如果我们公司有很多项目都有登录的功能,咋么设计?

其他

1.看你项目里说到使用过swoole,也写点go,你可以说说他们协程上的区别吗?

2.你可以说说 go 的 gmp 调度模型吗?

3.说说你们这个项目最难的点是哪个地方,你是咋么解决的?

以上就是新鲜出炉的PHP高级面试题来啦!【附答案】的详细内容,更多请关注Work网其它相关文章!

09-04 23:51