PHP面试总结-1

  • 面试公司
  • 面试中体现出的问题
  • 解决和提升的方法
  • 面试官提出的问题
    • 首先进行自我介绍
    • 关系型数据库和非关系型数据库之间的区别
      • 两者的本质区别:
      • 非关系型数据库的优势:
      • 关系型数据库的优势:
      • 现在的相关技术Mysql的HandlerSocket
    • 命令空间的作用
    • 谈一谈数据库优化的思路
    • 谈一谈对高并发,和大数据的处理方法
      • Web服务器
      • 数据库方面

刚从大学毕业,第一件事就是找工作,面试了几家公司做一下总结。主要针对面试管提出的问题,和自己认为需要提高的地方和注意的技巧。

面试公司

   面试的第一家公司悦多米(电商方向),规模比较小。

面试中体现出的问题

  • 没有一个完整的项目
  • 面试的基础知识准备不充分
  • 简历太过简陋

解决和提升的方法

  • 完善简历信息
  • 过一个PHP面试的常见问题和基础知识
  • 对之前的项目进行总结并完善,尽量可以从之前的项目衍生一个完整的项目出来(如果有心仪的行业,建议找个结合相关行业的项目)
  • 在前面两点准备充分的条件下,尽量找一个完整的项目写出来

面试官提出的问题

首先进行自我介绍

(面试技巧): 尽量避免只老套的介绍项目和自己。尽量在介绍自己的同时挑选几个亮点,同时结合面试公司的需求,体现出自己符合公司需求方面的长处。

关系型数据库和非关系型数据库之间的区别

两者的本质区别:

非关系型数据库产品是传统型数据库的功能阉割版本,通过减少用不到或很少用到的 功能,来大幅度提高产品性能。

非关系型数据库的优势:

  • 性能

NOSQL是基于键值对的,可以想象成表中的主键和值的对应关系,而且不需要经过SQL层的层层解析,所以性能很高。

  • 可扩展性

同样也是因为基于键值对,数据之间没有耦合性,所以非常容易水平扩展。

关系型数据库的优势:

  • 复杂查询

可以用SQL语句方便的在一个标以及多个表之间做非常复杂的数据查询。

  • 事务支持

使得对于安全性能很高的数据访问要求得以实现

现在的相关技术Mysql的HandlerSocket

HandlerSocket是一个MySQL的NoSQL插件。HandlerSocket会在mysql进程中开一个守护线程,来接受和处理来自客户端的tcp请求。 HandlerSocket不支持SQL查询,只提供简单的CRUD的操作。 因为以下原因,HandlerSocket比mysqld/libmysql要快一些。

  • HandlerSocket操作数据不经过解析SQL语句,CPU耗能比较少。
  • HandlerSocket接收客户端的请求并批量执行,CPU和磁盘消耗少。
  • HandlerSocket的client/server协议比mysql/libmysql相对紧凑一些,网络消耗要少一些。

命令空间的作用

PHP中的命令空间的明确的作用就是解决重名问题。

谈一谈数据库优化的思路

  • 设置良好的数据库表结构,允许部分数据冗余,尽量避免多表查询的情况的出现
  • 选择合适的表字段类型和存储引擎,适当的添加索引
  • 对SQL语句进行优化,尽量避免join语句,提高查询速度
  • 按照规律进行分表减少单表的数据量
  • 设置主从数据库,对数据库进行读写分离

谈一谈对高并发,和大数据的处理方法

这样的问题一般从两个大方面来回答,一个是web服务器方向,另一个是从数据库方向。

Web服务器

  • 利用nginx反向代理,在web服务器前面搭建缓存层,请求不直接请求web服务器,而是请求缓存服务器,减少Web服务器的负载。
  • 在客户端方面请求时尽量的采用异步
  • 服务器处理连接尽量采用队列的形式来处理请求,避免了服务的高并发。
  • 添加缓存机制,比如memcached,apc
  • 对不经常更改的页面进行静态化
  • 采用CDN服务来进行加速
  • 构建Web服务器集群

数据库方面

数据库方面和上面的数据库优化的思路相同

你可能感兴趣的:(php,面试问题)