面试常问问题
#####优化关系型数据库:
1. 了解索引有关知识,设计关系型数据库的表结构时,能够合理使用各种类型的索引。更重要的是如何根据Web站点变幻莫测的数据访问特点来有针对性地设计每个表的索引,这往往是有难度的,索引的合理使用对于依赖数据库访问的Web应用至关重要。
2.了解数据库存储引擎的特性。能根据自己的Web站点选择合适的存储引擎。
3.单台数据库服务器再也无法应付整个站点的需要, 这包括存储空间以及查询时间, 这时,我们将数据散列在多台主机,包括必要的冗余数据, 以此来合理地分散数据库的密集访问,数据库扩展便成为我们考虑的方案。
4. Web服务器与数据库服务器的数据通信一般基于标准的TCP, 即便它们位于同一台物理主机也是如此。其通信连接的建立和释放涉及代表一段内核高速缓冲区的文件描述符的创建和销毁,这需要不少的时间开销,包括系统调用导致的内核态切换以及某些异步阻塞I/O模型采用的文件描述符队列扫描机制。所以,频繁的数据库连接和释放无疑将导致数据访问等待时间的加长, 这段时间浪费得毫无意义。 使用数据库持久连接有效的解决了这一难题。
5. 锁机制
##### 非关系数据库的使用:
1. memcahed
2. redis
3. mongoDB
#####网络协议:
1. HTTP , HTTPS协议
2. TCP, UDP传输层协议
#####PHP:
问题: PHP的新语言特性有哪些? 了解PHP-FIG
问题: 怎么解决高并发问题? (什么是高并发?用户请求 并发量很大的情况)
问题: 怎么处理商品秒杀的情况,也就是说商品只有一个, 但是有很多个购买的请求发送到服务器端?
问题: 怎么防止不断的点击界面上的操作按钮,但是服务器那边只做一次操作? 比如说减去用户的积分, 怎么防止用户不断点击界面上的操作按钮,造成多次减去用户的积分的情况?
问题:RESTful API 的安全问题,都有哪些预防措施?
问题: 什么是单点登录? 它的原理和实现是什么?
问题: Oauth2 是什么? 作用是什么? 原理是什么? 以及如何实现?
问题: php 多进程 ?
问题: php 抓取内容?
问题: 多次刷新页面, 返回502状态码? 请问可能是哪些原因导致的?
问题: php-fpm、nginx、apache底层运行原理
#有Web安全意识, 熟悉常见的Web安全问题以及防御措施
#理解微服务架构, 有微服务设计和开发经验者优先
#熟悉全文搜索引擎Lucene(Solr)/Sphinx优先
#熟悉分布式文件服务FastDFS, TFS优先
#熟悉队列服务优先
#Nginx配置
#WebSocket使用