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"]));
6、mysql把一个大表拆分多个表后,如何解决跨表查询效率问题
- /**
- * 函数名称: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、索引应用
什么情况下考虑索引
什么情况不适合索引
一个语句是否用到索引如何判断
经常发生的用不到索引的场景:
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连接mysql数据库的几种方式及区别
mysql:面向过程
mysqli:面向对象
pdo:可移植性高
请参考:php基础系列:PHP连接MySQL数据库用到的三种API
三、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高级研发或架构师必了解---很多问题面试中常问到!的更多相关文章
- php高级研发或架构师必了解---面试题系列
近接连面试了几家公司,有些重要问题记录一下,督促自己学习提高,同时希望给朋友们一些帮助. 内容很多,一点点完善,一步步学习.. 有些是面试被问,有些是招聘要求,有些是自己整理加的. 一.mysql相关 ...
- Java架构师必会的技能
Java架构师必会的技能 我把它分为了五大专题 工程化专题 工程化专题 git git安装使用 git日常使用:fetch/pull/push/revert/rebase git分支管理git flo ...
- 优秀后端架构师必会知识:史上最全MySQL大表优化方案总结
本文原作者“ manong”,原创发表于segmentfault,原文链接:segmentfault.com/a/1190000006158186 1.引言 MySQL作为开源技术的代表作之一,是 ...
- 那些Java架构师必知必会的技术
Java基础 Java 7 和 Java 8 中的 HashMap原理解析 Java7 和 Java8 中的 ConcurrentHashMap 原理解析 Java中自定义注解 Java函数式编程和l ...
- 成为JAVA架构师必看书籍推荐
原创文章 “学习的最好途径就是看书“,这是我自己学习并且小有了一定的积累之后的第一体会.个人认为看书有两点好处: 1.能出版出来的书一定是经过反复的思考.雕琢和审核的,因此从专业性的角度来说,一本好书 ...
- Java 架构师 -- 必读书单
“学习的最好途径就是看书“,这是我自己学习并且小有了一定的积累之后的第一体会. 个人认为看书有两点好处: 1.能出版出来的书一定是经过反复的思考.雕琢和审核的,因此从专业性的角度来说,一本好书的价值远 ...
- Java架构师必看的10本书
1.大型网站系统与JAVA中间件实践 本书围绕大型网站和支撑大型网站架构的Java中间件的实践展开介绍. 从分布式系统的知识切入,让读者对分布式系统有基本的了解:然后介绍大型网站随着数据量.访问量增长 ...
- 【架构师之路】APP架构师必看:面对爆发流量如何进行架构调整
一.APP架构与WEB架构的最大不同 移动APP的架构和传统PC的WEB架构有三点不同: 1.连接的稳定性.在传统的web端连接成功后就可以认为它是稳定的,但在移动端.无线端,APP连接非常敏感,可能 ...
- Java架构师必看,超详细的架构师知识点分享!
在Java程序员行业中,有不少Java开发人员的理想是成为一名优秀的Java架构师,Java架构师的主要任务不是从事具体的软件程序的编写,而是从事更高层次的开发构架工作.他必须对开发技术非常了解,并且 ...
随机推荐
- TreeSet集合深入了解--------攻击原理
Set接口Set不允许包含相同的元素,如果试图把两个相同元素加入同一个集合中,add方法返回false.(无序,不可重复 )Set判断两个对象相同不是使用==运算符,而是根据equals方法.也就是说 ...
- javascript适合移动端的响应式瀑布流插件实例演示
在线预览 jQuery插件大全 实例代码 <div class="sucaihuo-container"> <div class="demo" ...
- Clipboard.js – 现代方式实现复制文本到剪贴板
复制文本到剪贴板应该并不难,目前已经有很成熟的 Flash 方法.但是 Flash 已经在很多场合不适用了,特别是随着 HTML5 技术的发展.今天推荐的这个 Clipboard.js 库不依赖 Fl ...
- php获取数组第一个值 current()
获取数组第一个元素的值,如果是数字索引那还好,直接$array[0],如果键名是字符串,你又未知这个字符串呢?用current()函数就可以做到. current() 函数返回数组中的当前元素(单元) ...
- mysql服务突然丢失解决方案
mysql服务突然丢失解决方案 今天系统从win7更新到win10之后,mysql突然没了,使用navicat连接提示如下: 看到这个,以为自己的mysql服务没启动,于是打开服务找mysql服务,发 ...
- atitit.身份认证解决方案attilax总结
atitit.身份认证解决方案attilax总结 1.1. 身份认证1 1.2. basic认证1 1.2.1. 编程实现basic客户端2 1.3. digest认证机制3 1.4. SSL认证3 ...
- [web安全]Web应用漏洞攻击分析与防范
网站攻击主要分为以下几类: (1) sql注入攻击 SQL Injection:就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令.它是利 ...
- 《The Linux Command Line》 读书笔记04 Linux用户以及权限相关命令
Linux用户以及权限相关命令 查看身份 id:Display user identity. 这个命令的输出会显示uid,gid和用户所属的组. uid即user ID,这是账户创建时被赋予的. gi ...
- 微信小程序需要https后台的创业机会思考
最近比较关注微信小程序,而且微信小程序的后台必须强制要求https, https相对http成本要高很多了. 这里我感觉有2个商机 (1)提供https 中转服务器 ,按流量来收费 (2) 微信小程序 ...
- APP One Link ,android and ios qrcode merge as One QRCode and one short link
Adroid and ios qrcode merge as One QRCode and one short link is publish , the web site is www.appone ...