PHP面试梳理

PHP

  • php 魔术方法 、魔术常量
  • php cli
  • autoload , spl_autoload
  • composer (如 Laravel 中 ClassLoader.php) , PRS 规范
  • php SPL标准库, 包括 数据结构、迭代器、接口、异常、函数、文件处理等
  • 闭包、函数式编程思想
  • php modules PHP-FPM FastCGI ...

PHP 框架 :

  • Laravel
  • Yii
  • Symfony
  • Socket WebSocket ? swoole框架

MySQL

  • mysql 日期查询, 比如查询今天、昨天、7天、近30天、本月、上月数据 , 怎
    么做到 ?reference : https://my.oschina.net/kakoi/blog/667791
  • mysql 事物、事物隔离级别,reference: 高性能MySQL -> chapter 1.3 • mysql索引实现原理 , reference: http://www.uml.org.cn/sjjm/201107145.asp#nav-2-1y • ORM 原理 : 对象属性与数据库字段映射 参考 Eloquent ORM
  • mysql 引擎 ?常用InnoDB MyISAM , 说说一些区别
  • InnoDB 表锁、 行级锁(share mode / exclusive)
    reference: http://www.cnblogs.com/zhaoyl/p/4121010.html http://www.myexcept
    ion.cn/mysql/1712377.html
  • MySQL性能调优 1.Linux IO,没有了解太多 2.配置层面 3.SQL语句调优 4.mysql
    临时表 create temporary table tmp_table..... (临时表只在连接期间存在) 临
    时表可以放在内存中,指定 type=heap
  • MySQL慢查询怎么监控?MySQL缓存、将select语句和查询结果放在缓冲区
    以后对于同样的sql语句、将直接从缓冲区读取结果、节约查询时间 设 置参数 :query_cache_size,MySQL 慢查询超过10秒 、慢查询日志、需要 手动开启、平时不建议开启,影响性能。或者开两个会话端口、一个跑sql、 另一个show processlist
  • 联合索引
  • 聚簇索引
  • FullTextSearch全文搜索
  • MySQL主从同步原理?主从数据库同步失败的原因常见有哪些?

Redis

  • redis 队列 (计数 实时通信 邮件队列) 持久化
  • redis value 类型? strings hashes list set 等、各类型应用场景 ?
  • redis用来做什么的:处理高并发,缓存处理,队列消息发送很方便
  • redis劣势: 1.redis是基于内存的,每次重启都需要重新读入数据。2.key-value, 并
    不是关系型数据库

算法

  • 排序
    冒泡排序:依次比较相邻,交换位置 。最好最坏情况下的时间复杂度 ? 选择排序:依次找到剩余最小的,判断和当前位置是否一样, 不然交换 QuickSort
  • 二分查找
  • 二叉树相关。遍历、二叉查找树
  • 基础数据结构以及时间复杂度怎么计算 List Heap
    哈希表查询元素的时间复杂度 o(1) 无序集合,有序集合,哈希表查询元素的问题是算法当中基础的基础

前端相关

  • multipart/form-data 与 application/x-www-form-urlencode ? form 的默认
    enctype 类型是 application/x-www-form-urlencode。而上传文件时, 使
    用 multipart/form-data ,文件会以二进制数据提交给服务器,不对字符进行编 码
  • Javascript 闭包函数、this 、传参 等问题

Web 缓存相关

  • 客户端缓存
  • Web代理
  • 静态资源CDN
  • redis
  • 数据库缓存 负载均衡相关
  • DNS
  • nginx
  • 数据库负载均衡

API接口

  • API接口安全性、参数验证 ?
  • App token 机制 ? Auth2 ?
  • 接口规范 , 输入、输出设计规范 ? 错误状态码

PHP设计模式

*常用: 门面、工厂、单例、 发布/订阅

Linux

*管道命令
*进程监控如ps(process status)工具 ,CPU监控、 top 、 iostat工具 文件权限 rwx, owner group other

HTTPS

  • https验证过程
  • SSL TLS 协议
  • 对称 、 非对称 加密解密? RSA ?

高并发应对

  • 缓存
  • 异步操作 消息队列 Laravel Queue Redis项目中的使用 : 缓存服务、 session服
    务 、 消息队列(邮件短信 积分发放、佣金发放、简单消息直接用闭包函
    数 —daemon 常驻队列) • 服务器负载均衡,堆机器
  • 分库分表 读写分离
    两个方向考虑 :
    1 . 尽可能减少并发请求量、通过缓存和异步请求
    2 . 尽可能增大服务处理能力、服务器和数据库的负载能力

你可能感兴趣的:(PHP面试梳理)