Mysql优化之开山篇
找尋優(yōu)化思路 -> sql語句優(yōu)化 -> 索引優(yōu)化
更新時間2016年7月30日 11:12:19
MySQL服務(wù)器調(diào)優(yōu)思路
Awk腳本
>擅長處理--多行多列的數(shù)據(jù)?[示例] 我在a.txt文件中存儲的內(nèi)容是
id ? ?name ? ?score
1 ? ? hlz ? ? ? 90
2 ? ? leo ? ? ? 66
3 ? ? lance ? ? 80
類似正則匹配,$0表示全部內(nèi)容 $1表示第一列的數(shù)據(jù) $2表示第二列的數(shù)據(jù) $3表示第三列的數(shù)據(jù)
// 把 a.txt 的全部列進(jìn)行輸出 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??// 把 a.txt 的第二列進(jìn)行輸出 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?// 把 a.txt 的含有na的一列進(jìn)行輸出
awk ?‘{printf“%s\n” , $0}’ a.txt ? ? ? ? ? ? ? ? ? ? ??awk ?‘{printf“%s\n” , $2}’ a.txt ? ? ? ? ?awk ?‘/na/{printf“%s\n” , $0}’ a.txt
//輸出結(jié)果 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??//輸出結(jié)果 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??//輸出結(jié)果
id ? ?name ? ?score ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?name ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?name
1 ? ? hlz ? ? ? 90? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? hlz ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??hlz
2 ? ? leo ? ? ? 66?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? leo ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?leo
3 ? ? lance ? ? 80? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?lance ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?lance
awk腳本 統(tǒng)計mysql服務(wù)器信息,并寫入日志
? ? ? ??[示例]mysql -hlocalhost -u帳號 -p密碼?-e "show status" ?>> ?mysql_status.txt
? ? ? ? ? ? ? ? ? ? ? ?InnoDB與Myisam的六大區(qū)別
|
| ?MyISAM | ??InnoDB |
| 構(gòu) 成 上 的 區(qū) 別: | ??每個MyISAM在磁盤上存儲成三個文件。第一個文件的名字以表的名字開始,擴(kuò)展名指出文件類型。 | ??基于磁盤的資源是InnoDB表空間數(shù)據(jù)文件和它的日志文件,InnoDB 表的大小只受限于操作系統(tǒng)文件的大小,一般為 2GB |
| ?事務(wù) 處理 上 方面: | ??MyISAM類型的表強(qiáng)調(diào)的是性能,其執(zhí)行數(shù)度比InnoDB類型更快,但是不提供事務(wù)支持 | ??InnoDB提供事務(wù)支持事務(wù),外部鍵等高級數(shù)據(jù)庫功能 |
| SELECT?? UPDATE,INSERT,Delete操作 | ??如果執(zhí)行大量的SELECT,MyISAM是更好的選擇 | ??1.如果你的數(shù)據(jù)執(zhí)行大量的INSERT或UPDATE,出于性能方面的考慮,應(yīng)該使用InnoDB表 |
| ??對AUTO _INCREMENT 的操作 | ??每表一個AUTO_INCREMEN列的內(nèi)部處理。 | ??如果你為一個表指定AUTO_INCREMENT列,在數(shù)據(jù)詞典里的InnoDB表句柄包含一個名為自動增長計數(shù)器的計數(shù)器,它被用在為該列賦新值。 |
| ?表的 具體 行數(shù) | ??select count(*) from table,MyISAM只要簡單的讀出保存好的行數(shù),注意的是,當(dāng)count(*)語句包含?? where條件時,兩種表的操作是一樣的 | ??InnoDB 中不保存表的具體行數(shù),也就是說,執(zhí)行select count(*) from table時,InnoDB要掃描一遍整個表來計算有多少行 |
| ??鎖 | ??表鎖 | ??提供行鎖(locking on row level),提供與 Oracle 類型一致的不加鎖讀取(non-locking read in |
?
總結(jié)
以上是生活随笔為你收集整理的Mysql优化之开山篇的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [网站上线]Lamp环境及其后续配置
- 下一篇: [windows版]搭建php的redi