PHP架构师面试题目和答案
一、mysql相关知识
1、请列举mysql优化方式
挑选出最适用于的字段属性、事务、瞄准表中、采用外键、采用索引、优化的查阅语句采用相连接(join)去替代子查阅(sub-queries)采用联手(union)去替代手动建立的临时表中
2、请列举分库分表的常用方法mysql面试题sql
存有一个1000多万条记录的用户表中members,查阅出来非常之快
for($i=0;$i<100;$i++){
//echo\echo\mid0={$i}\}?>
3、mysql+如何做双机热备和负载均衡
1.主服务器许可2.数据激活3.布局主服务器4.重新启动master6.重新启动slave7.查阅maste
r的状态与设置的与否一致8.查阅slave
5.配置slave
4、数据表类型存有哪些
myisam、innodb、heap、bob,archive,csv等
myisam:明朗、平衡、不易管理,快速加载。一些功能不积极支持(事务等),表级门锁。innodb:积极支持事务、外键等特性、数据行瞄准。空间挤占小,不积极支持全文索引等。
5、防sql注入的方法?
精美边框 mysql_escape_string(strip_tags($arr[\
6、mysql把一个大表拆分多个表后,如何解决跨表查询效率问题[php]viewplaincopy
1./**
2.*函数名称:post_check()
3.*函数促进作用:对递交的编辑内容展开处置4.*参数:$post:必须递交的内容
5.*返回值:$post:返回过滤后的内容6.*/
7.functionpost_check($post){儿童电脑编程入门自学视频
8.if(!get_magic_quotes_gpc()){//判断magic_quotes_gpc是否为打开
9.$post=addslashes($post);//展开magic_quotes_gpc没关上的情况对递交数据的过滤器10.}
11.$post=str_replace(\$post);//把'_'过滤掉12.$post=str_replace(\$post);//把'%'过滤掉13.$post=nl2br($post);//回车转换
14.$post=htmlspecialchars($post);//html标记切换15.return$post;16.}
7、索引应用
7.1什么情况下考量索引
7.2什么情况不适合索引
7.3一个语句与否使用索引如何推论
css3transition循环 8、mysql对于大表(千万级),要怎么优化
第一优化你的sql和索引;第二提内存,memcached,redis;
第三以上都做了后,还是慢,就做主从复制或主主复制,读写分离,可以在应用层做,效率高,也可以用三方工具,第三方工具推荐360的atlas,其它的要么效率不高,要么没人维护;第四如果以上都做了还是慢,不要想着去做切分,mysql自带分区表,先试试这个,对你的应用是透明的,无需更改代码,但是sql语句是需要针对分区表做优化的,sql条件中要带上分区条件的列,从而使查询定位到少量的分区上,否则就会扫描全部分区,另外分区表还有一些坑,在这里就不多说了;
第五如果以上都搞了,那就先搞横向分拆,其实就是根据你模块的耦合度,将一个小的系统分成多个大的系统,也就是分布式系统;
第六才是水平切分,针对数据量大的表,这一步最麻烦,最能考验技术水平,要选择一个合理的shardingkey,为了有好的查询效率,表结构也要改动,做一定的冗余,应用也要改,sql中尽量带shardingkey,将数据定位到限定的表上去查,而不是扫描全部的表;mysql数据库一般都是按照这个步骤去演化的,成本也是由低到高;
9、如何认知mysql的慢查阅什么软件可以下载编程软件
其实通过慢查询日志来分析是一种比较简单的方式,如果不想看日志,可以借助工具来完成,如mysqldumpslow,mysqlsla,myprofi,mysql-explain-slow-log,mysqllogfilter等,感觉自己来分析一个需要丰富的经验,一个浪费时间。
10、关于用户登入状态存有session,cookie还是数据库或者memcache的好坏
11、事务应用极端情况处理
12、sql语言分后4大类恳请列出
ddl--create,drop,alterdml--insert,update,deletedql-select
二、php基础
?
session的跨域共享资源就是什么,如何同时实现
?
php相连接mysql数据库的几种方式及区别
mysql:面向过程mysqli:面向对象pdo:可移植性高
三、php高级
?
短相连接和短相连接的采用,区别就是什么
?
socket的采用,详述过程
?
缴付安全问题,如何确保
面向对象的概念
?三小特性:PCB、承继、多态(方法改写)。
?
抽象类:abstract,至少存有一个方法就是抽象化方法,无法被实例化,为子类定义公共USB。USB:interface,化解php的单承继问题,所有方法都就是public出访权限的抽象化方法,无法声明变量就可以声明常量。
继承一个类的同时实现多个接口
classaextendsbimplementsUSB1,,USBn(){//同时实现所有USB中的方法}
?
lamp和lnmp网站架构性能差异的原因分析
?
解释性语言和编程性语言的性能分析,恳请举例
四、正则表达式:请用js实现正则表达式验证邮箱
functioncheck(email_address){
varregex=/^([0-9a-za-z\\-_\\.]+)@([0-9a-z]+\\.[a-z]{2,3}(\\.[a-z]{2})?)$/g;st(email_address)){
varuser_name=place(regex,\vardomain_name=place(regex,\varalert_string=\您输出的地址合法\\n\\n\alert_string+=\用户名:\alert_string+=\域名:\window.alert(alert_string);returntrue;}else{
window.alert(\您输入的地址不合法\returnfalse;}}
五、研发基础:详述进程和线程定义,区别和联系
进程的状态:运行run、就绪ready、等待wait
六、nosql数据库:详述memcached、redis、mongodb的区别联系
3个场景完全不同的东西。1.memcached:单一键值对内存缓存的,做对象缓存无可替代的分布式缓存;2.redis:是算法和数据结构的集合,快速的数据结构操作是他最大的特点,支持数据持久化;3.mongodb是bson结构、介于rdb和nosql之间的,更松散更灵活的,但是不支持事务,只用作非重要数据存储。
七、常用linux命令:如何创建硬链接
八、架构相关
?
项目上线前如何进行压力测试,单台服务器支持的并发数,pv数?
?
java线程需要手动关闭吗 服务器资源怎么分配合理
cpu:apache
mysql处在高负载环境下,磁盘io读写过多,肯定会占用很多资源,必然会cpu占用过高。内存:内存库,数据库软件硬盘:文件
?
web2.0架构选择有?
mongodb+redis或者mysql+memcached比较不好的女团,逻辑直观的就用nosql
?
当前盛行主要网站架构存有?
lamp、lnmp、llmp
现在网络上除了一种lnamp构架,也就是综合了nginx和apache的优点,采用apache功
率php,nginx负责管理解析其他web命令,采用nginx的rewrite模块,但是apache端口不对外开放,apache的许多模块都可以不读取增加资源。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论