PHP架构师面试题目和答案(6页).docx

上传人:1595****071 文档编号:37058041 上传时间:2022-08-29 格式:DOCX 页数:6 大小:127.01KB
返回 下载 相关 举报
PHP架构师面试题目和答案(6页).docx_第1页
第1页 / 共6页
PHP架构师面试题目和答案(6页).docx_第2页
第2页 / 共6页
点击查看更多>>
资源描述

《PHP架构师面试题目和答案(6页).docx》由会员分享,可在线阅读,更多相关《PHP架构师面试题目和答案(6页).docx(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、-PHP架构师面试题目和答案-第 6 页一、MySQL相关知识1、请列举mysql优化方式选取最适用的字段属性、事务、锁定表、使用外键、使用索引、优化的查询语句使用连接(JOIN)来代替子查询(Sub-Queries)使用联合(UNION)来代替手动创建的临时表2、请列举分库分表的常用方法有一个1000多万条记录的用户表members,查询起来非常之慢?phpfor($i=0;$i 100; $i+ )/echo CREATE TABLE db2.members$i LIKE db1.members;echo INSERT INTO members$i SELECT * FROM member

2、s WHERE mid%100=$i;?3、 Mysql+如何做双机热备和负载均衡1.主服务器授权2.数据复制3.配置主服务器4.重启master5.配置slave6.重启slave7.查看master的状态与设置的是否一致8.查看slave4、数据表类型有哪些MyISAM、InnoDB、HEAP、BOB,ARCHIVE,CSV等MyISAM:成熟、稳定、易于管理,快速读取。一些功能不支持(事务等),表级锁。InnoDB:支持事务、外键等特性、数据行锁定。空间占用大,不支持全文索引等。5、防sql注入的方法? mysql_escape_string(strip_tags($arr$val);6

3、、mysql把一个大表拆分多个表后,如何解决跨表查询效率问题php view plain copy1. *函数名称:post_check()2. *函数作用:对提交的编辑内容进行处理3. *参数:$post:要提交的内容4. *返回值:$post:返回过滤后的内容5. functionpost_check($post)6. if(!get_magic_quotes_gpc()/判断magic_quotes_gpc是否为打开7. $post=addslashes($post);/进行magic_quotes_gpc没有打开的情况对提交数据的过滤8. $post=str_replace(_,_,$

4、post);/把_过滤掉9. $post=str_replace(%,%,$post);/把%过滤掉10. $post=nl2br($post);/回车转换11. $post=htmlspecialchars($post);/html标记转换12. return$post;7、索引应用7.1什么情况下考虑索引7.2什么情况不适合索引7.3一个语句是否用到索引如何判断8、mysql对于大表(千万级),要怎么优化第一优化你的sql和索引;第二加缓存,memcached,redis;第三以上都做了后,还是慢,就做主从复制或主主复制,读写分离,可以在应用层做,效率高,也可以用三方工具,第三方工具推荐3

5、60的atlas,其它的要么效率不高,要么没人维护;第四如果以上都做了还是慢,不要想着去做切分,mysql自带分区表,先试试这个,对你的应用是透明的,无需更改代码,但是sql语句是需要针对分区表做优化的,sql条件中要带上分区条件的列,从而使查询定位到少量的分区上,否则就会扫描全部分区,另外分区表还有一些坑,在这里就不多说了;第五如果以上都做了,那就先做垂直拆分,其实就是根据你模块的耦合度,将一个大的系统分为多个小的系统,也就是分布式系统;第六才是水平切分,针对数据量大的表,这一步最麻烦,最能考验技术水平,要选择一个合理的sharding key,为了有好的查询效率,表结构也要改动,做一定的冗

6、余,应用也要改,sql中尽量带sharding key,将数据定位到限定的表上去查,而不是扫描全部的表;mysql数据库一般都是按照这个步骤去演化的,成本也是由低到高;9、如何理解mysql的慢查询其实通过慢查询日志来分析是一种比较简单的方式,如果不想看日志,可以借助工具来完成,如mysqldumpslow, mysqlsla, myprofi, mysql-explain-slow-log, mysqllogfilter等,感觉自己来分析一个需要丰富的经验,一个浪费时间。10、关于用户登录状态存session,cookie还是数据库或者memcache的优劣 11、事务应用极端情况处理12、

7、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,至少有一个方法是抽象方法,不能被实例化,为子类

8、定义公共接口。接口: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-z2,3(.a-z2)?)$/g;if ( re

9、gex.test( email_address ) )var user_name = email_address.replace( regex, $1 );var domain_name = email_address.replace( regex, $2 );var alert_string = 您输入的电子邮件地址合法nn;alert_string += 用户名: + user_name + n;alert_string += 域名: + domain_name;window.alert( alert_string );return true;elsewindow.alert( 您输入的电

10、子邮件地址不合法 );return false;五、开发基础:简述进程和线程定义,区别和联系进程的状态:运行run、就绪ready、等待wait六、Nosql数据库:简述memcached、redis、mongodb的区别联系3个场景完全不同的东西。1.memcached:单一键值对内存缓存的,做对象缓存无可替代的分布式缓存;2.redis:是算法和数据结构的集合,快速的数据结构操作是他最大的特点,支持数据持久化;3.mongodb是bson结构、介于rdb和nosql之间的,更松散更灵活的,但是不支持事务,只用作非重要数据存储。七、常用linux命令:如何建立软链接八、架构相关 项目上线前如

11、何进行压力测试,单台服务器支持的并发数,pv数? 服务器资源怎么分配合理CPU:ApacheMySQL处在高负载环境下,磁盘IO读写过多,肯定会占用很多资源,必然会CPU占用过高。内存:内存库,数据库软件硬盘:文件 web2.0架构选择有?MongoDB+Redis 或者 MySQL+Memcached 比较好的组合,逻辑简单的就用NOSQL 当前流行主要网站架构有?LAMP、LNMP、LLMP现在网络上还有一种LNAMP构架,也就是综合了nginx和Apache的优点,使用Apache负载PHP,nginx负责解析其他Web请求,使用nginx的rewrite模块,但是Apache端口不对外开放,Apache的许多模块都可以不加载减少资源。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁