一、引擎
1. csv儲存引擎
適用於1. 快速匯入匯出 2.**匯入到csv引擎資料庫
2. archive
壓縮協議(arz)存,20:1占用磁碟少,只可insert和select,只許自增id鍵
適用於1. 日誌、文件資料備份 2.大裝置高頻資料採集
3.memory
資料在記憶體效率高,表限定大小16m(可調),不支援大資料儲存欄位如blong、text,支援等值查詢效率高的hash索引,重啟或崩潰資料丟失可靠性低
適用於1.中介軟體快取熱點資料 2.mysql臨時儲存如查詢結果於記憶體計算data
4. myisam
較快插入和讀取資料,和innodb相比較小的磁碟占用,不支援表鎖、事務,資料庫索引主輔無主次和資料分開儲存,count(*)效率高資料統計是常數存
5.innodb
支援事務transaction,行鎖,聚集索引clustered indexes,外來鍵支援foreignkey support保證資料完整性,不支援hash索引但有自適應的hash索引,支援mvcc,資料和索引快取
二、sql執行:dql
1. unix socket跨程序通訊,tcp/ip 長連線,類似對講機的半雙工模式,同一時間內一種方式連線(單工:收音機、全雙工:**)
盡量精確查詢 使用limit、多條件查詢或按需處理。若sql長時間沒響應:mysql視窗查鏈路 show processlist,kill殺掉。
show variables like 『』
最大連線數1000,接收包資料4m
2. 查詢快取
類k-v的hash結構,適用讀多寫少的情況
快取失效與表資料一致,表改動就失效。
mysql5.6預設關閉query_cache_type 開關 query_cache_size 大小 query_cache_limit 上限
判斷條件必須完全一致,額外消耗
3. 驗證解析
語法分析 1064表示不合sql標準
詞法分析 1054
通過語法分析、詞法分析 生成解析樹。
4. 優化階段
物理優化:等價變化如聯合索引字段調動
邏輯優化:count、min、max函式,覆蓋索引優化、冗餘子查詢、提前終止sql、where條件in優化(in等價於or,執行效率o(n))、排序後二分法查詢判斷
5. 執行計畫
explain/desc sql \g 分行顯示查詢
set global optimizer_trace=『enabled=on』
id:操作表順序 相同從上到下、不同大的優先
select_type:******、最外層查詢primary、子查詢subquery、union
table:表名/別名 並集、派生、子查詢
type:資料獲取方式 system>主鍵、unique key唯一性索引const常量比較》唯一性索引掃瞄eq_ref>索引掃瞄ref>基於索引範圍查詢range>全索引掃瞄index>全表掃瞄all sql優化不得低於range
partitions:分割槽資訊
possibled_key:可能用到的索引
key:索引
ref:標識當前索引哪些使用
key_len:計算索引長度
rows:估算讀取行數
filtered:返回結果佔rows百分比,rows越少,filtered越大,準確性越高
extra:額外資訊,有using filesort、temporary、index、where...
6.資料返回
快取,以增量方式返回:生成就返回
7.sql分類
dqlselect
dmlupdate、insert、delete
ddlcreate table、view、index...
dclgrant
dql:bufferpool 記憶體快取,資料和索引熱載入 100m
dml:xa二階段提交是事務原子性的保證 1.update->bufferpool 刷髒(io一頁16kb)執行緒 2. to prepare 3. 記憶體redolog 磁碟檔案 記錄binlog日誌 4.commit 日誌檔案刷盤執行緒
binlog:mysql服務層,5.7關閉,,以事件形式記dml、ddl操作過程,邏輯日誌,檔案追加無大小限制,用於主從複製、資料恢復,有row行記錄、statement事務記錄:預設以sql記錄、mixed 3種記錄方式
MySQL核心原理4
效能優化 1.硬體選擇 cpu oltp 高可用小事務查詢 olap分析系統倉庫 ram 越大越好 快磁碟儲存 ssd 陣列 優網路 系統 關dns mysql 接入區dmg 內網core dns mysql 檔案控制代碼開啟數量即開闢io通道可命令 ulimit n檢視 1024 2.快取 red...
struts2核心工作原理
上圖 於 struts2 官方站點,是 struts 2 的整體結構。乙個請求在 struts2 框架中的處理大概分為以下幾個步驟 1 客戶端初始化乙個指向 servlet 容器 例如 tomcat 的請求 2 這個請求經過一系列的過濾器 filter 這些過濾器中有乙個叫做 actionconte...
angularJS核心原理
一 angularjs優點和缺點 優點 1.1免去重複勞動 獲取元素 給元素加事件 建立元素 1.2接管ui angularjs根據資料建立ui元素,免去手工建立ui元素。1.3自動同步 根據資料個數建立對應的html元素。缺點 二 angularjs一切皆資料 三 angularjs三要素 4.1...