PHP 利用了引用计数 (reference counting) GC 机制。

每个工具都内含一个引用计数器 refcount,每个 reference 连接到工具,计数器加 1。
当 reference 离开生存空间或被设为 NULL,计数器减 1。
当某个工具的引用计数器为零时,PHP 知道你将不再须要利用这个工具,开释其所占的内存空间。

参考 http://www.php.net/manual/zh/features.gc.r...

php与jsp占比分享一波腾讯PHP面试题建议珍藏 Webpack

2. session 与 cookie 的差异和联系

差异:

1. 存放位置:Session 保存在做事器,Cookie 保存在客户端。

2. 存放的形式:Session 因此工具的形式保存在做事器,Cookie 以字符串的形式保存在客户端。

3. 用场:Cookies 适宜做保存用户的个人设置,爱好等,Session 适宜做客户的身份验证

4. 路径:Session 不能区分路径,同一个用户在访问一个网站期间,所有的 Session 在任何一个地方都可以访问到。
而 Cookie 中如果设置了路径参数,那么同一个网站中不同路径下的 Cookie 相互是访问不到的。

5. 安全性:Cookie 不是很安全,别人可以剖析存放在本地的 COOKIE 并进行 COOKIE 欺骗,考虑到安全应该利用 session

6. 大小以及数量限定:每个域名所包含的 cookie 数:IE7/8,FireFox:50 个,Opera30 个; Cookie 总大小:Firefox 和 Safari 许可 cookie 多达 4097 个字节,Opera 许可 cookie 多达 4096 个字 节,InternetExplorer 许可 cookie 多达 4095 个字节;一样平常认为 Session 没有大小和数量限定。

关系:

Session 须要借助 Cookie 才能正常事情。
如果客户端完备禁止 Cookie,Session 将失落效!
由于 Session 是由运用做事器坚持的一个 做事器真个存储空间,用户在连接做事器时,会由做事器天生一个唯一的 SessionID, 用该 SessionID 为标识符来存取做事器真个 Session 存储空间。
而 SessionID 这一数据则是保存到客户端,用 Cookie 保存的,用户提交页面时,会将这一 SessionID 提交到做事器端,来存取 Session 数据。
这一过程,是不用开拓职员干预的。
以是一旦客户端禁用 Cookie,那么 Session 也会失落效。
点击查看-->1-7年进阶资料3. 如何修正 SESSION 的生存韶光设置浏览器保存的 sessionid 失落效韶光 setcookie (session_name (), session_id (), time () + $lifeTime, "/");可以利用 SESSION 自带的 session_set_cookie_params (86400); 来设置 Session 的生存期通过修正 php.ini 中的 session.gc_maxlifetime 参数的值就可以改变 session 的生存韶光

4. PHP 页面重定向的方法有哪些header('Location: http://www.baidu.com/') ;echo '';

3 echo '';

5. PDO、adoDB、PHPLib 数据库抽象层比较

PHP 数据库抽象层便是指,封装了数据库底层操作的介于 PHP 逻辑程序代码和数据库之间的中间件。

PDO 以 PHP 5.1 为根本进行设计,它利用 C 措辞做底层开拓,设计沿承 PHP 的特点,以简洁易用为准,从严格意义上讲,PDO 该当归为 PHP 5 的 SPL 库之一,而不应该归于数据抽象层,由于其本身和 MySQL 和 MySQLi 扩展库的功能类似。
PDO 是不适宜用在打算或者有可能会变更数据库的系 统中的。

ADODB 不管后端数据库如何,存取数据库的办法都是同等的;

转移数据库平台时,程序代码也不必做太大的更动,事实上只须要改动数据库配置文 件。
供应了大量的拼装方法,目的便是针对不同的数据库在抽象层的底层对这些语句进行针对性的翻译,以适应不同的数据库方言!
但是这个抽象层彷佛体积过于庞 大了,全部文件大概有 500K 旁边,如果你做一个很小的网站的话,用这个彷佛大材小用了

PHPLib 可能是伴随 PHP 一同发展最老的数据库抽象层(但和 ADODB 比较,它只算是一个 MySQL 抽象类库),这个抽象类利用方法相称大略,体积小,是小型网站开拓不错的选择。

PDO 供应预处理语句查询、缺点非常处理、灵巧取得查询结果(返回数组、字符串、工具、回调函数)、字符过滤防止 SQL 攻击、事务处理、存储过程。

ADODB 支持 缓存查询、移动记录集、(HTML、分页、选择菜单天生)、事务处理、输出到文件。
参考 http://apps.hi.baidu.com/share/detail/4636...

6. 长连接、短连接的差异和利用

长连接:client 方与 server 方先建立连接,连接建立后不断开,然后再进行报文发送和吸收。
这种办法下由于通讯连接一贯存在。
此种办法常用于 P2P 通信。

短连接:Client 方与 server 每进行一次报文收产生意营业时才进行通讯连接,交易完毕后立即断开连接。
此办法常用于一点对多点通讯。
C/S 通信。

长连接与短连接的利用机遇:

长连接:

短连接多用于操作频繁,点对点的通讯,而且连接数不能太多的情形。
每个 TCP 连 接的建立都须要三次握手,每个 TCP 连接的断开要四次握手。
如果每次操作都要建立连接然后再操作的话处理速率会降落,以是每次操作下次操作时直接发送数据 就可以了,不用再建立 TCP 连接。
例如:数据库的连接用长连接,如果用短连接频繁的通信会造成 socket 缺点,频繁的 socket 创建也是对资源的浪 费。

短连接:

web 网站的 http 做事一样平常都用短连接。
由于长连接对付做事器来说要耗费一定 的资源。
像 web 网站这么频繁的成千上万乃至上亿客户真个连接用短连接更省一些资源。
试想如果都用长连接,而且同时用成千上万的用户,每个用户都霸占一个 连接的话,可想而知做事器的压力有多大。
以是并发量大,但是每个用户又不需频繁操作的情形下须要短连接。

参考 http://www.cnblogs.com/Roberts/archive/2010/12/05/1986550.html

7. HTTP 协议详解、运用

http(超文本传输协议)是一个基于要求与相应模式的、无状态的、短连接、灵巧、运用层的协议,常基于 TCP 的连接办法。

参考 http://blog.csdn.net/gueter/article/detail... (http 协议详解)

(HTTP 相应状态码)

HTTP 相应状态码

状态代码有三位数字组成,第一个数字定义了相应的种别,且有五种可能取值:

1xx:指示信息 -- 表示要求已吸收,连续处理

2xx:成功 -- 表示要求已被成功吸收、理解、接管

3xx:重定向 -- 要完成要求必须进行更进一步的操作

4xx:客户端缺点 -- 要求有语法缺点或要求无法实现

5xx:做事器端缺点 -- 做事器未能实现合法的要求

常见状态代码、状态描述、解释:

200 OK // 客户端要求成功

400 Bad Request // 客户端要求有语法缺点,不能被做事器所理解

401 Unauthorized // 要求未经授权,这个状态代码必须和 WWW-Authenticate 报头域一起利用 403 Forbidden // 做事器收到要求,但是谢绝供应做事

404 Not Found // 要求资源不存在,eg:输入了缺点的 URL

500 Internal Server Error // 做事器发生不可预期的缺点

503 Server Unavailable // 做事器超时 // 可能规复正常

304 Not Modifed // 自早年次要求后,要求的网页未修正过。

// 做事器返回此相应时,不会返回网页内容。

8. 异构系统通讯中的通讯加密方案

参考 http://blog.csdn.net/linvo/article/details...

9. socket 连接步骤

Socket(套接字)观点

套接字(socket)是通信的基石,是支持 TCP/IP 协议的网络通信的基本操作单元。
它是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息:连接利用的协议,本地主机的 IP 地址,本地进程的协议端口,远地主机的 IP 地址,远地进程的协议端口。

Socket 连接过程

建立 Socket 连接至少须要一对套接字,个中一个运行于客户端,称为 ClientSocket ,另一个运行于做事器端,称为 ServerSocket

套接字之间的连接过程可以分为三个步骤:做事器监听,客户端要求,连接确认。

做事器监听:是做事器端套接字并不定位详细的客户端套接字,而是处于等待连接的状态,实时监控网络状态。

客户端要求:是指由客户真个套接字提出连接要求,要连接的目标是做事器真个套接字。
为此,客户真个套接字必须首先描述它要连接的做事器的套接字,指出做事器端套接字的地址和端口号,然后就向做事器端套接字提出连接要求。

连接确认:是指当做事器端套接字监听到或者说吸收到客户端套接字的连接要求,它就相应客户端

套接字的要求,建立一个新的线程,把做事器端套接字的描述发给客户端,一旦客户端确认了此描述,连接就建立好了。
而做事器端套接字连续处于监听状态,连续吸收其他客户端套接字的连接要求。

10. TCP 协议,三次握手、四次挥手

TCP 协议 (Transmission Control Protocol) 是主机对主机层的传输掌握协议,供应可靠的连接做事,采取三次握手确认建立一个连接,四次挥手断开连接。

位码即 tcp 标志位,有 6 种标示:

SYN (synchronous 建立联机) 同步

ACK (acknowledgement 确认)

PSH (push 传送)

FIN (finish 结束)

RST (reset 重置)

URG (urgent 紧急)

11. php 中常用浸染相似,性能差异很大的函数区分及举例

参考 http://apps.hi.baidu.com/share/detail/4316...

12. posix 及 perl 兼容正则比较,及函数性能剖析

POSIX 正则和 PCRE 正则最显著的须要知道的不同点:

PCRE 函数须要模式以分隔符闭合.POSIX 兼容正则没有改动符。
不像 POSIX, PCRE 扩展没有专门用于大小写不敏感匹配的函数。
取而

代之的是,支持利用 /i 模式润色符完成同样的事情。
其他模式润色符同样可用于改变匹配策略.

POSIX 函数从最左面开始探求最长的匹配,但是 PCRE 在第一个合法匹配后停滞。
如果字符串 不匹

配这没有什么差异,但是如果匹配,两者在结果和速率上都会有差别。
为相识释这个不同,考虑下面的例子 (来自 Jeffrey Friedl 的《精通正则表达式》一书). 利用模式 one (self)?(selfsufficient)? 在字符串 oneselfsufficient 上匹配,PCRE 会匹配到 oneself, 但是利用 POSIX, 结果将是全体字符串 oneselfsufficient. 两个子串都匹配原始字符串,但是 POSIX 将 最长的最为结果.

PCRE 可用的润色符: (i,s,m)

13. 实现 PERL 正则表达式,抓取 html 文件 a 标签的所有 href 超链接

正则:/<a\s+.?href=[\'\"](.?)[\'\" >]/is$html = <<<HTMLHTML;$matches = array();preg_match_all ( "/<a\s+.?href=[\'\"](.?)[\'\">]/is", $html, $matches ); print_r ($matches [1]); // 输出所有超链接?>

14. 预定义变量、魔术变量、魔术方法比较,及浸染举例

预定义变量(超级全局变量)$GLOBALS$_SERVER$_GET$_POST$_COOKIE$_SESSION$_REQUEST$_ENV魔术方法 http://apps.hi.baidu.com/share/detail/17851228construct 和 destruct__autoloadget 和 setisset 和 unsetcall 和 callStatic__clone__toStringsleep 和 wakeup__invoke魔术变量 http://apps.hi.baidu.com/share/detail/17851228LINEFILEDIRCLASSFUNCTIONMETHODNAMESPACE

15. spl 常用数据构造类

16. PHP 设计模式

工厂模式

建立一个工厂(一个函数或一个类方法)来制造新的工具

工厂模式 是一种类,它具有为您创建工具的某些方法。
您可以利用工厂类创建工具,而不直策应用 new。
这样,如果您想要变动所创建的工具类型,只需变动该工厂即可。
利用该工厂的所有代码会自动变动。

单例模式

某些运用程序资源是独占的,由于有且只有一个此类型的资源。
例如,通过数据库句柄到数据库的连接是独占的。
您希望在运用程序中共享数据库句柄,由于在保持连接打开或关闭时,它是一种开销,在获取单个页面的过程中更是如此。

单元素模式可以知足此哀求。

PHP 中的单例模式(singleton pattern):指的是在 PHP 的运用程序的范围内只对指定的类创建一个实例。

在 PHP 中利用单例模式的类常日拥有一个私有布局函数和一个私有克隆函数,以防 止用户通过创建工具或者克隆对其进行实例化。
还有一个静态私有成员变量 $instance 与静态方法 getInstance。
getInstance 卖力对其本身实例化,然后将这个工具存储在 $instance 静态成员变量中,以确保只有一个实例被创建。

不雅观察者模式

命令链模式

策略模式

17. 负载均衡的 web 运用做事器设计,例如 youku

用 PHP 做负载均衡指南

思考如何应对以下问题? 参考 http://www.examw.com/linux/all/142494/

在 Apache 负载均衡的情形下,做 PHP 开拓如何考虑一下几方面:

PHP 源文件在做事器、PHP 文件上传处理、干系配置文件、Session 会话放置、日志放置

Apache 负载均衡的原则:

参考 http://s456123123b.blog.163.com/blog/static/5632332220101080474642/

轮询均衡策略 (轮询转发要求)

按权重分配均衡策略 (按相应数量转发要求)

权紧张求相应负载均衡策略 (按相应流量转发要求)

18. 如何优化前端性能

1) 页面内容的优化

a) 降落要求数

合并 css、js 文件,集成 CSS 图片

b) 减少交互通信量

压缩技能:压缩 css、js 文件,优化图像,减少 cookie 体积;

合理利用缓存:利用外部 js/css 文件,缓存 ajax;

减少不必要的通信量:剔除无用脚本和样式、推迟加载内容、利用 GET 要求

c) 合理利用 “并行” 只管即便避免重定向

慎用 Iframe 样式表置于顶部 脚本放到样式后面加载

d) 节约系统花费

避免 CSS 表达式、滤镜

2) 做事器的优化

a) b)

c)

d)

19. yahoo 的 34 条前端优化法则

减少 HTTP 要求、利用 CDN 技能、 设置头文件过期或者静态缓存、Gzip 压缩、把 CSS 放顶部、 把 JS 放底部、避免 CSS 表达式、将 JS 和 CSS 外链、减少 DNS 查找、减小 JS 和 CSS 的体积、 避免重定向、删除重复脚本、 配置 ETags、缓存 Ajax、尽早的开释缓冲、

用 GET 办法进行 AJAX 要求、延迟加载组件、 预加载组件、减少 DOM 元素数量、跨域分离组件、

减少 iframe 数量、不要涌现 404 页面、减小 Cookie、 对组件利用无 Cookie 的域名、减少 DOM 的访问次数、开拓灵巧的事宜处理句柄、利用 <link> 而非 @import、避免过滤器的利用、优化图片、优化 CSS Sprites、 不要在 HTML 中缩放图片、缩小 favicon. ico 的大小并缓存它、担保组件在 25K 以下、将组件打包进一个多部分的文档中

20. 数据库缓存的基本理论,参考 memcached

什么是 Memcached?

memcached 是高性能的分布式内存缓存做事器。
一样平常的利用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态 Web 运用的速率、提高可扩展性。

虽然 memcached 利用了同样的 “Key=>Value” 办法组织数据,但是它和共享内存、APC 等本地缓存有非常大的差异。
Memcached 是分布式的,也便是说 它不是本地的。
它基于网络连接(当然它也可以利用 localhost)办法完成做事,本身它是一个独立于运用的程序或守护进程(Daemon 办法)

PHP 与 Memcached

Memcached 利用 libevent 库实现网络连接做事,理论上可以处理无限多的连接,但是它和

基于反向代理的 Web 缓存;

基于反向代理的 Web 缓存

23. PHP 安全模式

php 安全模式:safe_mode=on|off启用 safe_mode 指令将对在共享环境中利用 PHP 时可能有危险的措辞特性有所限定。
可以将 safe_mode 是指为布尔值 on 来启用,或者设置为 off 和脚本考试测验访问的文件的 UID,以此作为限定机制的根本。
如果 UID 相同,则实行脚本;否则,脚本失落败。
当启用安全模式时,一些限定将生效1、 所有输入输出函数(例如 fopen ()、file () 和 require ())的适用会受到限定,只能用于与调用这些函数的脚本有相同拥有者的文件2、 如果试图通过函数 popen ()、system () 或 exec () 等实行脚本,只有当脚本位于 safe_mode_exec_dir配置指令指定的目录才可能3、HTTP 验证得到进一步加强,由于验证脚本用于者的 UID 划入验证领域范围内。
此外,当启用安全模式时,不会设置 PHP_AUTH。
4、如果适用 MySQL 数据库做事器,链接 MySQL 做事器所用的用户名必须与调用 mysql_connect ()的文件拥有者用户名相同。
以下是一些和安全模式干系的配置选项safe_mode_gid=on|offsafe_mode_include_dir=stringsafe_mode_env_vars=stringsafe_mode_exec_dir=stringsafe_mode_protected_env_vars=string

24. 常见的 web 攻击办法

常见攻击

XSS (Cross Site Script) ,跨站脚本攻击。
它指的是恶意攻击者往 Web 页面里插入恶意 html 代码,当用户浏览该页之时,嵌入的恶意 html 代码会被实行,从而达到恶意用户的分外 目的。
XSS 属于被动式的攻击,由于其被动且不好利用,以是许多人常呼略其危害性。
但是随着前端技能的不断进步富客户真个运用越来越多,这方面的问题越来 越受关注。
举个大略例子 : 如果你现在是 sns 站点上一个用户,发布信息的功能存在漏洞可以实行 js 你在 此刻输入一个 恶意脚本,那么当前所有看到你新信息的人的浏览器都会实行这个脚本弹出提示框 (很爽吧 弹出广告 :)),如果你做一些更为激进行为呢 后果弗成思议。

CSRF (Cross Site Request Forgery),跨站点假造要求。
顾名思义便是 通过假造连接要求在用户不知情的情形下,让用户以自己的身份来完成攻击者须要达到的一些目的。
csrf 的攻击不同于 xss csrf 须要被攻击者的主动行为触发。
这样听来彷佛是有 “被钓鱼” 的嫌疑。

多窗口浏览器这这方面彷佛是有助桀为虐的嫌疑,由于打开的新窗口是具有当前所有 会话的,如果是单浏览器窗口类似 ie6 就不会存在这样的问题,由于每个窗口都是一个独立的进程。
举个大略例子 : 你正在玩白社会, 看到有人发了一个连接,你点击过去,然后这个连接里面假造了一个送礼物的表单,这仅仅是一个大略的例子,问题可见一样平常。

cookie 挟制。
通过获取页面的权限,在页面中写一个大略的到恶意站点的请 求,并携带用户的 cookie 获取 cookie 后通过 cookie 就可以直以被盗用户的身份登录站点。
这便是 cookie 挟制。
举个大略例子: 某人写了一篇很故意思的日志,然后分享给大家,很多人都点击查看并且分享了该日志,统统彷佛都很正常,然而写日志的人却另有存心,在日志中偷偷隐蔽了一个 对站外的要求,那么所有看过这片日志的人都会在不知情的情形下把自己的 cookie 发送给了 某人,那么他可以通过任意一个人的 cookie 来登录这个人的账户。

SQL 注入攻击

在 SQL 注入攻击 中,用户通过操纵表单或 GET 查询字符串,将信息添加到数据库查询中。

DNS 攻击

谢绝做事攻击

谢绝做事攻击即攻击者想办法让目标机器停滞供应做事,是黑客常用的攻击手段之。

攻击者进行谢绝做事攻击,实际上让做事器实现两种效果:一是迫使做事器的缓冲区满,不吸收新的要求;二是利用 IP 欺骗,迫使做事器把合法用户的连接复位,影响合法用户的连接

25. PHP 做好防盗链的基本思想 防盗链

什么是盗链?

盗链是指做事供应商自己不供应做事的内容,通过技能手段绕过其它有利益的终极用户界面 (如广告),直接在自己的网站上向终极用户供应其它做事供应商的做事内容,骗取终极用户的浏览和点击率。
受益者不供应资源或供应很少的资源,而真正的做事供应商却得不到任何的收益。

网站盗链会大量花费被盗链网站的带宽,而真正的点击率大概会很小,严重危害了被盗链网站的利益。
如何做防盗链?

不定期更名文件或者目录

限定引用页

事理是,做事器获取用户提交信息的网站地址,然后和真正的做事真个地址比较较, 如果同等则表明是站内提交,或者为自己信赖的站点提交,否则视为盗链。
实现时可以利用 HTTP_REFERER1 和 htaccess 文件 (须要启用 mod_Rewrite),结合正则表达式去匹配用户的每一个访问要求。

文件伪装

文件伪装是目前用得最多的一种反盗链技能,一样平常会结合做事器端动态脚本 (PHP/JSP/ASP)。
实际上用户要求的文件地址,只是一个经由伪装的脚本文件,这个脚本文件会对用户的要求作认证,一样平常会检讨 Session,Cookie 或 HTTP_REFERER 作为判断是否为盗链的依据。
而真实的文件实际隐蔽在用户不能够访问的地方,只有用户通过验证往后才会返回给用户

加密认证

这种反盗链办法,先从客户端获取用户信息,然后根据这个信息和用户要求的文件名 字一起加密成字符串 (Session ID) 作为身份验证。
只有当认证成功往后,做事端才会把用户须要的文件传送给客户。
一样平常我们会把加密的 Session ID 作为 URL 参数的一部分通报给做事器,由于这个 Session ID 和用户的信息挂钩,以是别人就算是盗取了链接,该 Session ID 也无法通过身份认证,从而达到反盗链的目的。
这种办法对付分布式盗链非常有效。

随机附加码

每次,在页面里天生一个附加码,并存在数据库里,和对应的图片干系,访问图片时和此附加码比拟,相同则输出图片,否则输出 404 图片

加入水印

26. HTTP 要求头信息和相应头信息

要求头信息POST /scp1.1.0/prs/new_rnaseqtask/run_go HTTP/1.1Host: 172.30.4.102User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:6.0) Gecko/20100101 Firefox/6.0Accept: /Accept-Language: zh-cn,zh;q=0.5Accept-Encoding: gzip, deflateAccept-Charset: GB2312,utf-8;q=0.7,;q=0.7Connection: keep-aliveContent-Type: application/x-www-form-urlencoded; charset=UTF-8X-Requested-With: XMLHttpRequestReferer: http://172.30.4.102/scp1.1.0/index.php/prs... Content-Length: 1819Cookie:ci_session=a%3A4%3A%7Bs%3A10%3A%22session_id%22%3Bs%3A32%3A%22e31556053ff9407a454f6a1e146d43eb%22%3Bs%3A10%3A%22ip_address%22%3Bs%3A12%3A%22172.16.23.42%22%3Bs%3A10%3A%22user_agent%22%3Bs%3A50%3A%22Mozilla%2F5.0+%28Windows+NT+6.1%3B+rv%3A6.0%29+Gecko%2F2010010%22%3Bs%3A13%3A%22last_activity%22%3Bi%3A1314955607%3B%7D664b51a01ef99bac95f3e2206e79cb00;PHPSESSID=v33mlm1437lmop1fquta675vv4;username=linjinming; tk=1314955601855 Pragma: no-cacheCache-Control: no-cache相应头信息HTTP/1.1 200 OKDate: Fri, 02 Sep 2011 09:27:07 GMTServer: Apache/2.2.3 (Red Hat)X-Powered-By: PHP/5.1.6Expires: Thu, 19 Nov 1981 08:52:00 GMTCache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0Pragma: no-cacheVary: Accept-EncodingContent-Encoding: gzipContent-Length: 31Connection: closeContent-Type: text/html; charset=UTF-8

27. MySQL

MySQL 数据库性能优化

利用 mysqlreport;

精确利用索引:explain 剖析查询语句,组合索引,索引副浸染(占空间、update)

开启慢查询日志、利用慢查询剖析工具 mysqlsla;

索引缓存、索引代价(插入更新索引);

表锁,行锁,行锁副浸染(update 多时候变慢),在 select 和 update 稠浊的情形下,行锁奥妙办理了读写互斥的问题;

开启利用查询缓存;

修正临时表内存空间;

开启线程池;

MySQL Query 语句优化的基本思路和原则

优化须要优化的 Query;定位优化工具的性能瓶颈;明确优化目标;从 Explaing 入手;多利用 Profile;永久用小结果集推动大的结果集;尽可能在索引中完成排序;只取自己须要的 Columns;仅仅利用最有效的过滤条件;尽可能避免繁芜的 Join 和子查询。

MySQL 中 MyISAM 引擎和 InnoDB 引擎的差异以及它们的性能

1:Innodb 支持事物,Myisam 不支持

2:锁定机制不一样,Myisam 支持表锁定,而 Innodb 支持行锁

3:Myisam 不支持外键,Innodb 能支持

4:Myisam 能在特定环境下支持全文索引,而 Innodb 不支持

5:Myisam 支持数据压缩,Innodb 不支持

6:在数据存储上,Myisam 占用的空间少,Innodb 相对多些

7:Myisam 在批量插入和查询方面速率上有上风,而 Innodb 由于支持行锁,以是在数据修正方面更胜一筹

MySQL 存储引擎

MyISAM:不支持事务、表锁和全文索引,操作速率快

InnoDB:行锁设计、支持外键、支持安全事务

HEAP:数据存放在内存中,临时表

NDB Cluster:MySQL 的簇式数据库引擎

CSV: 存储引擎把数据以逗号分隔的格式存储在文本文件中。

FEDERATED:存储引擎表并不存放数据,它只是指向一台远程 MySQL 数据库做事器上的表 Archive: 只支持 INSERT 和 SELECT 操作,压缩后存储,非常适宜存储归档数据

Merge:许可将一系列等同的 MyISAM 表以逻辑办法组合在一起,并作为 1 个工具引用它们 表类型,区分表类型

优化表设计的常用思路

负载均衡的数据库设计

数据类型及详细定义,区分

28. Apache

性能优化,配置,fastCGI 等几种事情模式

29. Ajax

用 JS 实现 Ajax 功能

var createXHR = function(){}var addURLParam = function(url, name, value){}var xhr = createXHR();xhr.onreadystatechange = function(){}var url = 'testAjax.php';addURLParam(url, 'name', 'linjm');xhr.open('get',url,true);xhr.send(NULL);if(xhr.readyState == 4){ } if(xhr.status > 200 && xhr.status < 300 || xhr.status == 304){ } alert(xhr.responseText); url += (url.indexOf('?') == -1 ? '?' : '&'); url += encodeURIComponent(name) + '=' + encodeURIComponent(value); return url; if(window.XMLHttpRequest){ } return new XMLHttpRequest(); return new ActiveXObject('Microsoft.XMLHTTP'); throw new Error('No XMLHttpRequest available'); }else{ }else{}

30. Javascript

变量、浸染域、浸染域链