收藏 分销(赏)

2024年PHP架构师面试题目和答案.doc

上传人:天**** 文档编号:8225730 上传时间:2025-02-08 格式:DOC 页数:10 大小:45.54KB 下载积分:8 金币
下载 相关 举报
2024年PHP架构师面试题目和答案.doc_第1页
第1页 / 共10页
2024年PHP架构师面试题目和答案.doc_第2页
第2页 / 共10页


点击查看更多>>
资源描述
一、MySQL有关知识 1、请列举mysql优化方式 选用最合用的字段属性、事务 、锁定表、使用外键 、使用索引、优化的查询语句  使用连接(JOIN)来替代子查询(Sub-Queries)  使用联合(UNION)来替代手动创建的暂时表  2、请列举分库分表的常用措施 有一个1000多万条统计的用户表members,查询起来非常之慢 <?php  for($i=0;$i< 100; $i++ ){  //echo "CREATE TABLE db2.members{$i} LIKE db1.members<br>";  echo "INSERT INTO members{$i} SELECT * FROM members WHERE mid%100={$i}<br>";  }  ?>  3、 Mysql+怎样做双机热备和负载均衡 1.主服务器授权 2.数据复制 3.配备主服务器 4.重启master 5.配备slave 6.重启slave 7.查看master的状态与设置的是否一致 8.查看slave 4、数据表类型有哪些 MyISAM、InnoDB、HEAP、BOB,ARCHIVE,CSV等 MyISAM:成熟、稳定、易于管理,迅速读取。某些功效不支持(事务等),表级锁。 InnoDB:支持事务、外键等特性、数据行锁定。空间占用大,不支持全文索引等。 5、防sql注入的措施?       mysql_escape_string(strip_tags($arr["$val"])); 6、mysql把一个大表拆分多个表后,怎样处理跨表查询效率问题 [php] view plain copy 1. /**  2. * 函数名称:post_check()   3. * 函数作用:对提交的编辑内容进行处理   4. * 参  数:$post: 要提交的内容   5. * 返 回 值:$post: 返回过滤后的内容   6. */   7. function post_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一个语句是否用到索引怎样判断 8、mysql对于大表(千万级),要怎么优化 第一优化你的sql和索引;第二加缓存,memcached,redis; 第三以上都做了后,还是慢,就做主从复制或主主复制,读写分离,能够在应用层做,效率高,也能够用三方工具,第三方工具推荐360的atlas,其他的要么效率不高,要么没人维护; 第四假如以上都做了还是慢,不要想着去做切分,mysql自带分区表,先试试这个,对你的应用是透明的,无需更改代码,不过sql语句是需要针对分区表做优化的,sql条件中要带上分区条件的列,从而使查询定位到少许的分区上,否则就会扫描所有分区,另外分区表尚有某些坑,在这里就不多说了; 第五假如以上都做了,那就先做垂直拆分,其实就是依照你模块的耦合度,将一个大的系统分为多个小的系统,也就是分布式系统; 第六才是水平切分,针对数据量大的表,这一步最麻烦,最能考验技术水平,要选择一个合理的sharding key,为了有好的查询效率,表结构也要改动,做一定的冗余,应用也要改,sql中尽也许带sharding key,将数据定位到限定的表上去查,而不是扫描所有的表; mysql数据库一般都是按照这个步骤去演化的,成本也是由低到高; 9、怎样了解mysql的慢查询 其实通过慢查询日志来分析是一个比较简单的方式,假如不想看日志,能够借助工具来完成, 如mysqldumpslow, mysqlsla, myprofi, mysql-explain-slow-log, mysqllogfilter等,感觉自己来分析一个需要丰富的经验,一个浪费时间。 10、有关用户登录状态存session,cookie还是数据库或者memcache的优劣 11、事务应用极端情况处理 12、sql语言分4大类请列举         DDL--CREATE,DROP,ALTER         DML--INSERT,UPDATE,DELETE         DQL-SELECT         DCL--GRANT,REVOKE,COMMIT,ROLLBACK 二、php基础 · session的跨域共享是什么,怎样实现 · php连接mysql数据库的几个方式及区分 mysql:面对过程 mysqli:面对对象 pdo:可移植性高  三、php高级 · 长连接和短连接的使用,区分是什么 · socket的使用,简述过程 · 支付安全问题,怎样确保 · 面对对象的概念 · 三大特性:封装、继承、多态(措施重写)。 抽象类:abstract,最少有一个措施是抽象措施,不能被实例化,为子类定义公共接口。 接口:interface,处理php的单继承问题,所有措施都是public访问权限的抽象措施,不能申明变量只能申明常量。 继承一个类的同时实现多个接口 class A  extends B implements 接口1,接口2...,接口n(){       //实现所有接口中的措施 } · lamp 和 lnmp 网站架构性能差异的原因分析 · 解释性语言和编译性语言的性能分析,请举例 四、正则体现式:请用js实现正则体现式验证邮箱  function check( email_address )  {   var regex = /^([0-9A-Za-z\-_\.]+)@([0-9a-z]+\.[a-z]{2,3}(\.[a-z]{2})?)$/g;   if ( regex.test( email_address ) )   {         var user_name = email_address.replace( regex, "$1" );    var domain_name = email_address.replace( regex, "$2" );    var alert_string = "您输入的电子邮件地址合法\n\n";    alert_string += "用户名:" + user_name + "\n";    alert_string += "域名:" + domain_name;    window.alert( alert_string );    return true;   }   else   {    window.alert( "您输入的电子邮件地址不合法" );    return false;   }  } 五、开发基础:简述进程和线程定义,区分和联系 进程的状态:运行run、就绪ready、等候wait 六、Nosql数据库:简述memcached、redis、mongodb的区分联系 3个场景完全不一样的东西。1.memcached:单一键值对内存缓存的,做对象缓存无可替代的分布式缓存;2.redis:是算法和数据结构的集合,迅速的数据结构操作是他最大的特点,支持数据持久化;3.mongodb是bson结构、介于rdb和nosql之间的,更涣散更灵活的,不过不支持事务,只用作非重要数据存储。 七、常用linux命令:怎样建立软链接 八、架构有关 · 项目上线前怎样进行压力测试,单台服务器支持的并发数,pv数? · 服务器资源怎么分派合理 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的许多模块都能够不加载减少资源。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服