阿里巴巴開發手冊 Mysql規約

2021-10-20 07:30:06 字數 818 閱讀 8521

不要使用 count(列名)或 count(常量)來替代 count(*)。

count(*)會統計值為null的行,而 count(列名)不會統計此列為 null值的行。

count(distinct col) 計算該列除 null之外的不重複數量

當某一列的值全是 null時,count(col)的返回結果為 0,sum(col)的返回結果為null

使用 isnull()來判斷是否為 null值。null與任何值的直接比較都為 null

在**中寫分頁查詢邏輯時,若 count為 0應直接返回,避免執行後面的分頁語句。

不得使用外來鍵與級聯,一切外來鍵概念必須在應用層解決。

禁止使用儲存過程,儲存過程難以除錯和擴充套件,更沒有移植性。

資料訂正時,刪除和修改記錄時,要先 select,避免出現誤刪除,確認無誤才能執行更新語句。

in操作能避免則避免,若實在避免不了,需要仔細評估 in後邊的集合元素數量,控制在 1000個之內。

select length(「輕鬆工作」); 返回為 12(utf-8)

select character_length(「輕鬆工作」); 返回為 4(utf-8)

truncatetable 比 delete 速度快,且使用的系統和事務日誌資源少,但 truncate無事務且不觸發 trigger,有可能造成事故,故不建議在開發**中使用此語句。

阿里巴巴開發手冊 程式設計規約(2)

1.2 常量定義 1,不允許使用任何魔法值 即未經預先定義的常量 直接出現在 中 2,在long或者long出事賦值時,數值後使用大寫的l,不能是小寫的l。小寫l容易與數字1混淆造成誤解 3,不要是用乙個常量類維護所有常量,要按常量功能進行歸類,分開維護 4,常量的復用層次有5層 跨應用共享常量 應...

阿里巴巴開發手冊之索引規約

業務上具有唯一特性的字段,即使是組合字段,也必須建成唯一索引,不要以為唯一索引影響了insert速度,這個速度損耗可以忽略,但提高查詢 速度是明顯的 2.超過三個表禁止join,多表關聯查詢時,被關聯的字段需要有索引 即使是雙表也要注意表索引,sql效能 3varchar欄位建立索引時,必須指定索引...

阿里巴巴開發手冊

反例 string str start for int i 0 i 100 i 2 注意 math.random 這個方法返回是double型別,注意取值的範圍 0 x 1 能夠取到零值,注意除零異常 如果想獲取整數型別的隨機數,不要將x放大10的若干倍然後取整,直接使用random物件的nexti...