一.首先開啟資料庫慢查詢日誌,定位到查詢效率比較低的sql , 找出對應的sql語句並進行分析
1.表設計是否規範,是否符合三正規化的標準
(1)第一正規化:保證原子性(不可拆分)
(2)第二正規化:每張表都有主鍵
(3)第三正規化(每一列都有主鍵相關)
2.檢視資料表中是否存在大量的冗餘字段,字段資料型別是否合理
3.盡可能的使用varchar代替char 建表資料型別,能用數值的絕對不用字元儲存
4.盡量避免null值,使用預設值替代空值,數值型可以使用0,字元型可以使用空字串
二.檢視sql語句是否規範
(1)避免使用關鍵字:or ,in,not in ,!=,<>,避免使用select *
(2)盡量避免子查詢,大部分子查詢都可以連線查詢
(3)用到or的地方可以使用union去代替實現
(4)用到in的地方可以使用exists去代替
三.分析sql的索引是否可以用上
(1) explain查詢sql的執行計畫,重點關注的幾個列就是,type是不是全表掃瞄,key使用的是哪個索引
(2)看一下索引是否能夠用的上,主要看key使用的是哪個索引
(3)看一下rows掃瞄行數是不是很大
一些個人的想法
今天是2016年4月2日,星期六。目前我已經在網際網路行業裡摸爬滾打了三年有餘,加上七年的求學生涯,轉眼一看已經十年了。過去的十年是網際網路行業蓬勃發展的十年,雲計算 資料探勘以及移動網際網路的興起讓我們的生活出現了翻天覆地的變化 在這個遍地充滿機會的時代裡,出現了乙個又乙個的弄潮兒 這是乙個最好的...
關於sql注入的一些個人心得
sql 注入就是通過使用者提交的資料中加入一些特殊字元如單引號等來影響sql命令的行為 這些網上都有很多說明,只要搜一下都會有很多。好一點的會知道通過表單提交的資料來注入,很少有人會注意到通過一些隱藏的域或都不可輸入的表單項來注入 其實像checkbox radio 這樣的表單元素都是可以用來作為s...
PDV的一些個人理解
最近剛剛考完sas base,對這個考試的一大感受就是,只要你理解了pdv,基本上就不成問題。接下來談談我對pdv的理解吧,也算是學習sas的過程中的乙個筆記。sas的執行有兩個階段需要了解,編譯階段 compilation phase 和執行階段 execution phase 編譯階段sas主要...