MySQL事务中的ACID特性?
A 原子性
事务是一组SQL语句,不可分割
C 一致性
事务中的SQL语句要么同时执行,即全部执行成功,要么全部不执行,即执行失败
I 隔离性
MySQL中的各个事务通过不同的事务隔离等级,产生不同的影响
事务隔离等级 脏读 不可重复读 幻读
读未提交 是 是 是
读提交 否 是 是
可重复读 否 否 是(MySQL使用MVCC解决)
串行化 否 否 否
D 持久性
事务产生的结果会保存在磁盘当中,实现持久存储
解释MySQL索引及其作用,说明索引的优缺点?
索引是MySQL数据库中的一种数据结构,MySQL索引可以在数据进行查询时优化数据的查询速度
优点: 显著的提高了数据的查询速度
缺点: 索引设置的数量过多时,会占用一定的存储空间;在数据进行增删改的时候需要对维护进行索引
什么是MySQL的主从复制,他的作用是什么?
MySQL主从复制是MySQL的一种集群架构
作用:
数据热备: 在主节点出现故障造成业务失效时,从节点可以切换为主节点继续进行工作缓解压力: 使用主从架构,将用户的写请求发送到主节点,将读请求发送给从节点,缓解了主节点的压力,提高了数据库的性能
数据冗余: 在主节点数据丢失时,可以在从库中读取数据并还原
如何优化MySQL的查询性能?至少列举三种?
①从服务器性能考虑:更换配置更高的服务器
②设置合理的索引,提高查询速度
③如果使用主从架构,可以提高从节点的数量,让查询请求分发到不同主机进行处理
④使用mycat将数据库进行分库分表,提高查询速度
简述Nginx的工作原理?特别是如何处理HTTP请求?
工作原理:
主进程负责管理,工作进程负责处理请求
使用epoll实现异步非阻塞,提高了请求的处理速度
HTTP请求的处理
接收连接: 主进程监听端口,工作进程处理连接
解析请求: 读取请求行和请求头,匹配配置文件
处理请求:根据配置返回静态文件
返回响应: 异步返回客户端,支持连接复用和缓存
Nginx和Apache的主要区别是什么?在高并发场景下,为什么通常选择Nginx?
主要区别:
nginx是轻量级的web服务软件,消耗的资源较低,并发量高
nginx的配置文件相对简单,apache的配置相对复杂
apache与php语言的兼容性较好
nginx的功能更丰富,比如反向代理,负载均衡功能
nginx并发量高的原因:
nginx采用epoll模型,实现了I/O多路复用;
使用模块化来实现各中功能;
异步非阻塞
如何配置Nginx实现反向代理和负载均衡?
负载均衡
①先配置上游服务器,使用upstream进行配置
②然后使用proxy_pass进行代理upstream
反向代理
直接使用proxy_pass进行代理
什么是Nginx的location指令?它在URL匹配中起到什么作用?
location指令:
配置位置 server块中,可以使用精确匹配,前缀匹配,正则匹配等方式
在 Nginx 配置文件中,location 指令用于定义 URL 路径与服务器资源之间的映射关系。
HTTP和HTTPS的主要区别是什么?HTTPS是如何保证数据传输的安全性的?
HTTP协议是没有进行加密的,明文传输
HTTPS协议使用TLS/SSL协议进行加密,更为安全
安全传输的方法:
加密:防止数巨泄露
身份验证:防止中间人攻击
完整性校验:防止数据篡改
请解释HTTP请求方法和状态码的含义,并举例说明常用的请求方法和状态码?
请求方法: POST 提交 GET 获取 HEAD 仅获取请求头 DELETE 向服务器请求删除数据 PUT 用于更新或者替换资源
状态码: 200 OK
301 302 永久重定向和临时重定向
305 内容未发生改变
403 访问被拒绝,可能是没有权限
404 访问资源不存在
500 服务器内部错误
502 公共网关出现问题,访问的返回请求失效
505 HTTP版本不受支持