• 总结


    1、是否了解过PHP的底层实现?

    了解底层可能让你更好的写出效率高的PHP程序,如$a = ['hello','world']和 $a[] = 'hello'; $a[] = 'world'; 实现过程有何不同?

    2、像数据结构,组成原理,编译原理等大学课程有熟悉的吗?

    3、MySQL事务了解吗,如事务的隔离机制?

    4、MySQL的索引底层如何实现,了解这些有助于写出高效率sql。

    5、MySQL的explain。

    6、如$arr = ['a'=>'yes']; 判断$arr['a']存在否有几种方式?

    说的isset()和array_key_exists(),那么这两个判断存在否的时候有什么不同?

    如果$arr = ['a'=>false];呢,对结果有没有影响?

    7、给一串字符串 $s = '][][[[]]]'; 求有多少对'[]'?

    //括号匹配问题使用栈去实现,方便快捷
    $str = '][][[[]]]';
    //初始化一个栈
    $stack = new SplStack();
    $len = strlen($str);
    $count = 0;
    for ($i = 0; $i < $len; $i++) {
        if ($str[$i] == '[') {
            $stack->push($str[$i]);
        } elseif ($str[$i] == ']') {
            if (!$stack->isEmpty() && $stack->pop() == '[') {
                $count++;
            }
        }
    }
    unset($stack);
    echo $count;//4

    8、给用户发送优惠劵,优惠劵有时间限制,并在过期之前的某个时间段需要给用户发送提示消息,设计表和发消息的程序。

    card表:

    id[优惠劵ID],uid[用户ID],create_time[创建时间],expire_time[过期时间],notice_time[提醒时间]

    发消息:

    可以select card表,并按照notice_time asc排序,将顺序数据插入到redis队列中,程序读队列,没到时间则还放进去,到时间了发通知。

    衍生:现在假设优惠劵表有很多数据,需要分表,那么怎么分比较好?

    衍生:分表了怎么查某个用户id所有的优惠劵?

    衍生:要是用Redis做优惠劵的缓存,用哪个字段类型?

    redis的hash类型比较合适

     9、MySQL的InnoDB和MyISAM有什么不同?

     10、PHP中求合集,交集,并集的方式?合集只用array_merge()吗?

     11、用了redis做缓存,怎么防止缓存穿透,比如访问一个mysql和redis都不存在的数据,是不是每次都去访问MySQL了?

    12、数据库主从库数据同步问题,有延迟怎么处理?主从同步是如何同步的,原理呢?https://blog.csdn.net/xidiancyp/article/details/51457053

  • 相关阅读:
    【Storm篇】--Storm从初始到分布式搭建
    【Storm篇】--Storm 容错机制
    git命令log与reflog的比较
    长时间不操作Navicat或Putty会断线?
    git使用ssh密钥
    公钥能用公钥解吗?
    什么是公钥,,什么是密钥啊 ?有什么区别吗?
    CSS滑动门
    Html设置文本换行与不按行操作
    设置鼠标光标与页面favicon
  • 原文地址:https://www.cnblogs.com/deverz/p/11098518.html
Copyright © 2020-2023  润新知