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版本不受支持