some 規約

===========服務器規約============
1.高併發服務器調小tcp協議的time_wait超時時間。
/etc/sysctl.conf     #net.ipv4.tcp_fin_timeout =  30

2.服務器所支持的最大文件句柄數(file descriptor )調大。linux

  主流的操做系統是將TCP/UDP的鏈接採用與文件同樣的方式與管理,一個鏈接對應一個fd;默認的linux服務器所支持的fd的數量爲1024,當併發鏈接數過大時,容易報錯「open too many files」致使新的鏈接沒法創建;通常是根據服務的內存來設置句柄數是1024*n。
3.給JVM設置-XX:+HeapDumpOnOutOfMemeoryError參數;
4.服務器內部重定向必須使用forward;外部重定向必須使用URL Broker生成,不然會由於線上使用https協議而致使瀏覽器提示不安全。
 
===========安全規約================
1.能夠被用戶直接訪問的功能必須進行權限控制校驗;
2.用戶的敏感數據,在展現的時候必須進行脫敏設置,如支付寶中查看 我的手機號碼,須要隱藏中間四位;
3.用戶輸入的SQL參數嚴格使用參數綁定或者METADATA字段值限定,防止SQL注入,禁止字符串拼接SQL訪問數據庫;
4.用戶請求傳入的任何參數必須作有效性驗證;可能出現  page size過大致使內存溢出;惡意order by 致使數據庫慢查詢,正則輸入源串拒絕服務ReDos,任意重定向,SQL注入,shell注入,反序列化注入;
5.禁止向HTML頁面輸出未經安全過濾或者未正確轉義的用戶數據;
6.表單、AJAX提交必須執行CSRF安全過濾。
7.URL外部重定向傳入的目標地址必須執行白名單過濾;
8.web應用必須正確配置Robots文件,非SEO URL必須配置爲禁止爬蟲訪問。
User-agent : * Disallow:/

 

===========SQL規約==============
1.count(*)是標準的統計行數的語法,跟數據庫無關,跟null  not null和空無關;
 count(*)會統計值爲null的行,可是count(列名)不會統計此列爲null值的行

咱們通常會使用 select count(1)~~; 是由於通常默認第一列爲id,id不爲空,這樣統計出來的就是該表的實際行數。
2.count(distinct col)是計算該列除null以外的不重複數量;可是count(distinct col1,col2)若出現其中一列爲null,那麼即便另外一列有不一樣的值,也會返回0;
3.當某一列col全爲null,count(col)返回結果爲0,可是sum(col)則返回null,能夠採用
select ifisnullsum(g)),0,sum(g)) from table;

4.null與任何值的直接比較,返回結果都爲null。web

null<>null ==>null;
null = null ==>null;
null <>1   ==>null;

5.不得使用外鍵與級聯,外鍵概念必須在應用層解決;外鍵與級聯更新適用於單機頂併發,並不適合分佈式、高併發集羣;級聯更新是強阻塞,影響更新和插入速度。禁止使用存儲過程,存儲過程難以調試和擴展,也沒有移植性。shell

6.truncate table 與delete 相比較,truncate速度快不少,並且使用的系統事務日誌資源特別少,可是truncate無事務且不觸發trigger,在刪除數據時,能夠直接這麼作。
 
 
補充一個常見的格式化時間字段的使用方法:
======日期格式和substr()的區別=============
返回的數據主要是格式有區別,MySQL是兩種都支持的。
SELECT DATE_FORMAT(modify_date,'%Y-%m'),COUNT(1) FROM `vip` GROUP BY DATE_FORMAT(modify_date,'%Y-%m');

SELECT SUBSTR(modify_date,1,7) FROM `vip` LIMIT 1 GROUP BY SUBSTR(modify_date,0,7);

與substr()相似的還有一個函數,substring_index()。SUBSTRING_index函數的使用下面補充數據庫

---substr和substring函數的使用是同樣的---
substring_index(str,delim,n)
  --str是須要處理的字符串,delim是分隔符,n爲正數,則表示從左往右 取第n個分隔符的左邊所有內容;若n爲負數,則表示從右往左數,第n個分隔符的右邊所有內容。
相關文章
相關標籤/搜索