PHP架构师面试题目和答案.docx

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PHP架构师面试题目和答案

一、/base/mysqlMySQL相关知识1、请列举mysql优化方式选取最适用的字段属性、事务?、锁定表、使用外键?、使用索引、优化的查询语句?使用连接(JOIN)来代替子查询(Sub-Queries)?使用联合(UNION)来代替手动创建的临时表?2、请列举分库分表的常用方法有一个1000多万条记录的用户表members,查询起来非常之慢?php?for($i=0;$i 100; $i++ ){?//echo CREATE TABLE db2.members{$i} LIKE db1.membersbr;?echo INSERT INTO members{$i} SELECT * FROM members WHERE mid%100={$i}br;?}???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、mysql把一个大表拆分多个表后,如何解决跨表查询效率问题[php] /jinxingfeng_cn/article/detailsiew plain /jinxingfeng_cn/article/detailsopy/**?*?函数名称:post_check()??*?函数作用:对提交的编辑内容进行处理??*?参  数:$post:?要提交的内容??*?返?回?值:$post:?返回过滤后的内容??*/??function?post_check($post){??if(!get_magic_quotes_gpc()){//?判断magic_quotes_gpc是否为打开$post?=?addslashes($post);//?进行magic_quotes_gpc没有打开的情况对提交数据的过滤}??$post?=?str_replace(_,\_,?$post);//?把?_过滤掉??$post?=?str_replace(%,\%,?$post);//?把?%过滤掉??$post?=?nl2br($post);//?回车转换$post?=?htmlspecialchars($post);//?html标记转换return?$post;??}??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还是/base/mysql数据库或者memcache的优劣 11、事务应用极端情况处理12、sql语言分4大类请列举 DDL--CREATE,DROP,ALTER DML--INSERT,UPDATE

文档评论(0)

138****7331 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档