• php高级研发或架构师必了解---面试题系列


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

    一、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;

  • 相关阅读:
    爬虫的一般步骤
    微风轻轻起
    vim
    kali wifi (not complete!)
    virtualenv python3
    kali google
    kali set proxy and system upgrade
    kali下安在vim
    数据导入导出(关系型数据库==非关系型数据库)
    redis常见错误
  • 原文地址:https://www.cnblogs.com/taozi32/p/5364239.html
Copyright © 2020-2023  润新知