面试高级php工程师,一般会问到哪些问题?
高并发大访问量的mysql优化,服务器优化?
字段建索引、主从数据库、读写分离、表分区、负载均衡。
linux的慢查询日志会记录mysql的超时查询sql语句,定期察看进行优化。
2.大访问量下秒杀模块程序怎么设计,如果使用mysql会有多卖的情况,就是订单超过库存。
将订单数据缓存到内存,如果用数据库直接崩掉,毫无悬念的。
3.缓存的使用
能用静态的用静态,不能静态的用内存缓存,例如memcache、redis,不能缓存的用数据库。
4.session可不可以跨域?怎么跨域?
将PHP session机制重写(PHP提供),将session存储在memcache或者数据库就可以跨域了。
另外session能以三种方式存储,文件、数据库、缓存。
5.了不了解非关系型数据库?
mongodb
6.会不会写shell脚本以及linux的操作
还会问一下时下流行的东西,比如做没做过微信开发,例如微信支付开发、APP移动开发,等等问题。
问的核心东西都是围绕这些转的,如果有笔试会让你写sql,php功能(例如冒泡排序等排序),还有逻辑题。
我当初面试了很多,这是一个我的面试经验的总结,纯手打忘采纳。
php和MySQL,HTML之间的变量是怎么样互相取得互相联系的?
网站中的采用PHP+MySQL+HTML语言开发,那一定是动态网站,而这一个动态就体现在PHP的身上。
网站中的各个变量实质就是发送请求交由服务端,然后再把变量位置发送变化的数据给替换掉并展示给客户端。
首先请求会交给nginx,在优化nginx做请求转发给到PHP,然后PHP在进行业务代码处理数据库当中的数据相应操作,然后把获取到的数据通过视图模板渲染数据后生成为HTML页面,在返回给nginx,由nginx来响应页面数据给到浏览器,浏览器进行HTML页面的DOM解析处理。
联系就是数据通过PHP操作数据库,获取到数据库数据然后再经过视图模板进行渲染,在交由nginx返回给客户端。
PHP和HTML
HTML是用户看到客户端的结果页,但是这个结果页是需要经过浏览器来进行标签的解析处理的。既然是由浏览器解析HTML,那么页面里面的变量肯定是经过PHP去执行处理的。
当用户请求发送到服务器里面的nginx时,nginx会根据虚拟站点信息进行规则匹配,匹配到指定站点后,然后把请求交给到PHP,PHP在处理当前用户请求里面需要做的事情,我们的业务逻辑就是php中完成。
处理完成后,PHP会执行一步叫做模板渲染的操作,这这里机会把相关的PHP变量替换成php的代码,并执行里面的php代码,最后就在相关变量位置得到最终需要的数据。然后生成的HTML静态资源响应给nginx,在返回给客户端
如果不是框架里面的模板渲染,而是普通的php嵌入html的页面,就省去了模板变量替换php代码过程
PHP和MySQL
mysql本质就是数据管理系统,一切页面的展示和它没关系,它只是提供页面中需要的数据,而这个数据需要PHP用相关的 mysql 客户端去连接到 mysql 数据库。例如:mysqli、pdo
建立连接后再用SQL语句查找相关数据,拿到的数据就是视图模板进行赋值的过程,相当于就是把数据通过赋值过程交给到视图模板中去,毕竟你视图解析的时候需要把模板变量替换为普通的php代码后在执行。
综上:php和mysql、html的关系。分别对应逻辑操纵、数据存储、页面效果展示,它们之间的联系就来自于PHP进行相关逻辑、数据操作得到最终的数据,然后解析页面在返回。
如有感悟,欢迎关注