服务器方面:
1、web服务器nginx和apache的对比分析
①nginx相对于apache的优点:
轻量级,同样起web 服务,比apache 占用更少的内存及资源 ,抗并发,nginx 处理请求是异步非阻塞的,而apache 则是阻塞型的,在高并发下nginx 能保持低资源低消耗高性能,高度模块化的设计,编写模块相对简单。
apache相对于nginx 的优点:A.rewrite ,比nginx 的rewrite 强大;B.动态页面,模块超多,基本想到的都可以找到;C.少bug ,nginx 的bug 相对较多;D.超稳定.
一般来说,需要性能的web 服务,用nginx 。如果不需要性能只求稳定,那就apache.
②作为 Web 服务器:相比 Apache,Nginx 使用更少的资源,支持更多的并发连接,体现更高的效率。Nginx采用C进行编写, 不论是系统资源开销还是CPU使用效率都比 Perlbal 要好很多.
③Nginx 配置简洁,Apache 复杂。Nginx 静态处理性能比 Apache 高 3倍以上,Apache 对 PHP 支持比较简单,Nginx 需要配合其他后端用。Apache 的组件比 Nginx 多,现在 Nginx 才是Web 服务器的首选。
④最核心的区别在于apache是同步多进程模型,一个连接对应一个进程;nginx是异步的,多个连接(万级别)可以对应一个进程。
⑤nginx处理静态文件好,耗费内存少.但无疑apache仍然是目前的主流,有很多丰富的特性.所以还需要搭配着来.当然如果能确定nginx就适合需求,那么使用nginx会是更经济的方式。
⑥nginx处理动态请求是鸡肋,一般动态请求要apache去做,nginx只适合静态和反向。
⑦Nginx优于apache的主要两点:A.Nginx本身就是一个反向代理服务器 B.Nginx支持7层负载均衡;其他的当然,Nginx可能会比 apache支持更高的并发。
数据库方面:
1、数据库优化:
①方法:MySQL可以建分表,读写分离,建索引,一般经常更新的字段不适合建索引,建索引会降低数据非查询操作的效率。主键是一种特殊的索引。
②导致索引失效的情况:
A、如果条件中有or,即使其中有条件带索引也不会使用到。
B、对于多列索引,不是使用的第一部分,则不会使用索引。
C、like查询是以%开头,而不是以%结尾的。
D、如果索引列类型是字符串,一定要在条件中将数据使用引号引用起来,否则不使用索引。
E、如果mysql估计使用全表扫描要比使用索引快,则不使用索引。
2、MySQL引擎的种类和区别
①种类:MyISAM