近接连面试了几家公司,有些重要问题记录一下,督促自己学习提高,同时希望给朋友们一些帮助。
内容很多,一点点完善,一步步学习。。
有些是面试被问,有些是招聘要求,有些是自己整理加的。

一、mysql相关知识
    1、 mysql优化方式
            MYSQL 优化常用方法
            mysql 性能优化方案
  
    2、如何分库分表
           参考:
http://blog.sina.com.cn/s/blog_6e322ce70100zs9a.html
           http://www.jb51.net/article/29771.htm

3、 Mysql+如何做双机热备和负载均衡
http://www.dewen.org/q/51/Mysql+如何做双机热备和负载均衡
   
   4、数据表类型有哪些
       MyISAM、InnoDB、HEAP、BOB,ARCHIVE,CSV等
       MyISAM:成熟、稳定、易于管理,快速读取。一些功能不支持(事务等),表级锁。
       InnoDB:支持事务、外键等特性、数据行锁定。空间占用大,不支持全文索引等。

myisam和Innodb引擎的主要特点
       MySQL的存储引擎MyISAM与InnoDB有什么区别?

5、防sql注入方法
      mysql_escape_string(strip_tags($arr["$val"]));

  1. * 函数名称:post_check()
  2. * 参  数:$post: 要提交的内容
  3. */
  4. function post_check($post){
  5. if(!get_magic_quotes_gpc()){//
    判断magic_quotes_gpc是否为打开
  6. //
    进行magic_quotes_gpc没有打开的情况对提交数据的过滤
  7. $post = str_replace("_","\_",
    $post);// 把 '_'过滤掉
  8. // 把 '%'过滤掉
  9. //
    回车转换
  10. //
    html标记转换
  11. return $post;
  12. }

6、mysql把一个大表拆分多个表后,如何解决跨表查询效率问题
   7、索引应用
         什么情况下考虑索引
         什么情况不适合索引
         一个语句是否用到索引如何判断
        经常发生的用不到索引的场景:
                like '%.....'
                数据类型隐式转换
                or 关键字加其它条件约束
       全文索引:
                只能用于MYIsAM表,在CHAR,VARCHAR,TEXT类型的列上创建。

8、mysql对于大表(千万级),要怎么优化呢?
        参考http://www.zhihu.com/question/19719997

9、mysql的慢查询问题
  其实通过慢查询日志来分析是一种比较简单的方式,如果不想看日志,可以借助工具来完成,

如mysqldumpslow, mysqlsla, myprofi, mysql-explain-slow-log, mysqllogfilter等,感觉自己来分析一个需要丰富的经验,一个浪费时间。

10、关于用户登录状态存session,cookie还是数据库或者memcache的优劣 http://www.dewen.org/q/11504/

关于用户登录状态存session%2Ccookie还是数据库或者memcache的优劣

11、事务应用极端情况处理
  12、sql语言分4大类请列举
        DDL--CREATE,DROP,ALTER
        DML--INSERT,UPDATE,DELETE
        DQL-SELECT
        DCL--GRANT,REVOKE,COMMIT,ROLLBACK

二、php基础

  • session的跨域共享

三、php高级

  • 长连接和短连接的使用
  • socket的使用
  • 支付安全问题
  • 面向对象
    三大特性:封装、继承、多态(方法重写)。
    抽象类:abstract,至少有一个方法是抽象方法,不能被实例化,为子类定义公共接口。
    接口:interface,解决php的单继承问题,所有方法都是public访问权限的抽象方法,不能声明变量只能声明常量。
    继承一个类的同时实现多个接口
    class A  extends B implements 接口1,接口2...,接口n(){
          //实现所有接口中的方法
    }
  • lamp 和 lnmp 网站架构性能差异的原因分析
  • 解释性语言和编译性语言的性能分析,举例。

四、正则

email,html,js等匹配

五、开发基础

  • 进程和线程定义,区别和联系。
           进程的状态:运行run、就绪ready、等待wait

六、Nosql数据库
       memcached、redis、mongodb的区别联系
       3个场景完全不同的东西。1.memcached:单一键值对内存缓存的,做对象缓存无可替代的分布式缓存;2.redis:是算法和数据结构的集合,快速的数据结构操作是他最大的特点,支持数据持久化;3.mongodb是bson结构、介于rdb和nosql之间的,更松散更灵活的,但是不支持事务,只用作非重要数据存储。
     参考 MongoDB 或者 redis 可以替代 memcached 吗?

七、常用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的许多模块都可以不加载减少资源。

其它:
数据挖掘经验、熟悉hadoop/lucene/mahout;

php高级研发或架构师必了解---面试题系列的更多相关文章

  1. php高级研发或架构师必了解---很多问题面试中常问到!

    一.mysql相关知识    1. mysql优化方式            MYSQL 优化常用方法            mysql 性能优化方案      2.如何分库分表            ...

  2. Java架构师必会的技能

    Java架构师必会的技能 我把它分为了五大专题 工程化专题 工程化专题 git git安装使用 git日常使用:fetch/pull/push/revert/rebase git分支管理git flo ...

  3. 优秀后端架构师必会知识:史上最全MySQL大表优化方案总结

    本文原作者“ manong”,原创发表于segmentfault,原文链接:segmentfault.com/a/1190000006158186 1.引言   MySQL作为开源技术的代表作之一,是 ...

  4. 成为JAVA架构师必看书籍推荐

    原创文章 “学习的最好途径就是看书“,这是我自己学习并且小有了一定的积累之后的第一体会.个人认为看书有两点好处: 1.能出版出来的书一定是经过反复的思考.雕琢和审核的,因此从专业性的角度来说,一本好书 ...

  5. Java 架构师 -- 必读书单

    “学习的最好途径就是看书“,这是我自己学习并且小有了一定的积累之后的第一体会. 个人认为看书有两点好处: 1.能出版出来的书一定是经过反复的思考.雕琢和审核的,因此从专业性的角度来说,一本好书的价值远 ...

  6. Java架构师必看的10本书

    1.大型网站系统与JAVA中间件实践 本书围绕大型网站和支撑大型网站架构的Java中间件的实践展开介绍. 从分布式系统的知识切入,让读者对分布式系统有基本的了解:然后介绍大型网站随着数据量.访问量增长 ...

  7. 那些Java架构师必知必会的技术

    Java基础 Java 7 和 Java 8 中的 HashMap原理解析 Java7 和 Java8 中的 ConcurrentHashMap 原理解析 Java中自定义注解 Java函数式编程和l ...

  8. 【架构师之路】APP架构师必看:面对爆发流量如何进行架构调整

    一.APP架构与WEB架构的最大不同 移动APP的架构和传统PC的WEB架构有三点不同: 1.连接的稳定性.在传统的web端连接成功后就可以认为它是稳定的,但在移动端.无线端,APP连接非常敏感,可能 ...

  9. Java架构师必看,超详细的架构师知识点分享!

    在Java程序员行业中,有不少Java开发人员的理想是成为一名优秀的Java架构师,Java架构师的主要任务不是从事具体的软件程序的编写,而是从事更高层次的开发构架工作.他必须对开发技术非常了解,并且 ...

随机推荐

  1. JS 星号 * 处理手机号和名称

    有时候为了不让用户看到手机号和姓名,需要针对手机号和姓名进行 * 处理. 比如: 13140121671  =>  "131****1671" '王宝宝'  =>  & ...

  2. lp3676 小清新数据结构题

    传送门 Description 有一棵\(n\)个点的树,每个点有一个点权. 现在有\(q\)次操作,每次操作是修改一个点的点权或指定一个点,询问以这个点为根时每棵子树点权和的平方和. Solutio ...

  3. LayuiAdmin 单页版关闭当前页面tab的方式-图文

    需要关闭的时候 调用 parent.layui.admin.events.closeThisTabs() 即可执行当前页面的关闭 $.post("/index.php/WebAdmin/Wx ...

  4. boosting与随机森林

      本文原创,转载请注明出处 http://www.cnblogs.com/gufeiyang 本文主要分两部分,boosting 与 随机森林. “三个臭皮匠顶一个诸葛亮”是说三个不聪明的人集合在一 ...

  5. JavaScript初探系列目录

    一  系列导航 结合各方面的参考资料,整理出来以下主要目录,供方便浏览查看 (一)初探系列           JavaScript初探系列(1)——基本概念 JavaScript初探系列(2)——数 ...

  6. csapp网络编程初学笔记

    csapp网络编程初学笔记 客户端-服务器编程模型 每个网络应用都是基于客户端-服务器模型,服务器管理某种资源,并且通过操作来为它的客户提供某种服务 客户端-服务器模型中的基本操作是transacti ...

  7. linux清除git账号密码

    执行vi ~/.git-credentials,可以看到被保存的账号密码,删掉或者修改都可以了! eg:http://账号:密码@git仓库http地址

  8. log4j实现日志自动清理功能

    log4j不支持自动清理功能,但是log4j2版本支持,log4j2是log4j的升级版,比logback先进. log4j升级为log4j2(不需要改动代码)https://blog.csdn.ne ...

  9. springMVC Controller 参数映射

    springMVC 对参数为null或参数不为null的处理 - 小浩子的博客 - CSDN博客https://blog.csdn.net/change_on/article/details/7664 ...

  10. Maltego更新到4.2.6

    Maltego更新到4.2.6   此次更新包含以下两处修改: (1)在服务管理中,允许用户修改OAuth回调协议的端口. (2)修复启动画面溢出错误.