软件开发工程师进阶之路

本文详细探讨了软件开发工程师在服务器、数据库和框架方面的进阶知识。在服务器方面,对比了nginx与apache的性能、应用场景和优缺点;在数据库方面,讲解了数据库优化技巧、MySQL引擎的种类与区别,以及事务处理的ACID原则和隔离级别;在框架方面,介绍了Spring的IoC和AOP核心原理,以及与Struts2和Servlet的对比。
摘要由CSDN通过智能技术生成

服务器方面:

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值