資料庫優化規範

2021-10-08 19:03:50 字數 1408 閱讀 6719

1、不使用or

​ 索引是乙個樹,使用or難以確定方向,故在 where 子句中使用 or 來連線條件時mysql將放棄使用索引而進行全表掃瞄。

(1)結果可能重複使用unions

select a.memberid,a.membername,a.memberphone

from member a,member_tmep b

where

(a.membername = b.membername or a.memberphone = b.memberphone)

and a.memberid <> b.memberid

--查詢出會員姓名相同但id不同的記錄

select a.memberid,a.membername,a.memberphone

from member a

inner

join member_tmep b on a.membername = b.membername and a.memberid <> b.memberid

union

--再查詢出會員**相同但id不同的記錄,進行合併

select a.memberid,a.membername,a.memberphone

from member a

inner

join member_tmep b on a.memberphone = b.memberphone and a.memberid <> b.memberid

(2)結果不重複使用union all

使用"union all"的效能比"union"更高一些。因為當sql 語句需要union兩個查詢結果集合時,這兩個結果集合會以union-all的方式被合併, 然後在輸出最終結果前進行排序。 如果用union all替代union, 這樣排序就不是必要了,效率就會因此得到提高。

select id from member where membername in

('張三'

,'李四'

)

select

*from member where membername =

'張三'

union

allselect

*from member where membername =

'李四'

(3)連續數值範圍使用bwteen…and

select id from member where memberid between

90and

100

2、其他

資料庫 規範

使用一致的 敘述性的名稱。靈活使用空格和縮進來增強可讀性。儲存符合iso 8601標準的日期格式 yyyy mm dd hh mm ss.sssss 最好使用標準sql函式而不是特定 商的函式以提高可移植性。保證 簡潔明瞭並消除多餘的sql 比如非必要的引號或括號,或者可以推導出的多餘where語句...

資料庫規範

db軍規30條 一 基礎規範 1 必須使用innodb儲存引擎 解讀 支援事務 行級鎖 併發效能更好 cpu及記憶體快取頁優化使得資源利 用率更高 2 必須使用utf8mb4字符集 解讀 萬國碼,無需轉碼,無亂碼風險,節省空間 3 資料表 資料字段必須加入中文注釋 解讀 n年後誰tm知道這個r1,r...

資料庫規範

所有資料庫物件名稱必須使用小寫字母並用下劃線分割 mysql嚴格區分大小寫 所有資料庫物件名稱禁止使用mysql保留關鍵字 例如from date常見關鍵字 命名要做到見名識義,最好不要超過32個字元 臨時表以tmp為字首日期為字尾 備份表以bak為字首日期為字尾 所有儲存相同資料的列明和列型別必須...