mysql使用規範

2021-09-02 12:41:16 字數 1376 閱讀 5444

<1>.索引

1.單錶索引不超過5個;

2.單個索引不超過5列;

3.innodb主鍵推薦自增列;

主鍵不改被修改;

字串不應該做主鍵;

若不指定主鍵,innodb會使用唯一且非空值索引代替;

4.若是復合索引,區分度大的前置;

5.核心sql優先考慮索引;

6.區分度的的字段前置;

7.避免冗餘或重複索引:合理建立聯合索引:

index(a,b,c)相當於:index(a),index(a,b),index(a,b,c)

8.不在低基數列建索引,如性別;

9.不在索引列進行數學、函式運算;

10.盡量不要使用外來鍵;

11.不使用%前導查詢,如like"%***",無法使用索引;

12.不使用反響查詢,如not in、not like,無法使用索引;

13.盡量要有主鍵。

<2>.欄位

1.禁止使用text、blog型別;

2.將字元轉化為數字;

3.使用tinyint代替enum型別;

4.字段長度盡量按照實際進行分配,不要隨意給乙個大容量;

5.如果可能,所有字段盡量not null;

6.使用unsigned儲存非負整數;

7.int型別固定占用4個位元組儲存;

8.使用timestamp儲存時間;

因為timestamp使用4位元組,datetime使用8位元組,同時timestamp具有自動複製以及自動更新的特性。

9.禁止在資料庫中儲存明文密碼;

<3>.sql

1.禁止使用儲存過程、觸發器、檢視等;讓資料庫做最擅長的事,降低業務耦合度;

2.避免使用大表的join;

3.避免資料庫中進行數**算,數**算和邏輯判斷,無法使用索引;

4.減少與資料庫的互動次數;

5.拒絕大sql,拆分成小sql,充分使用query cache,充分利用多喝cpu.

6.使用in 代替 or,in 的值不超過1000個;

7.禁止使用order by rand();

因為使用order by rand() 會將資料從磁碟讀取進行排序,耗費大量io和cpu,可以再程式中獲取乙個rand值,然後通過資料庫中獲取對應的值。

8.使用union all 而不是 union.

9.禁止單條sql語句同時更新多個表(跨表更新);

10.不使用select*;

11.禁止使用test庫;

<4>.行為規範

1.禁止super許可權應用賬號存在;

2.對單錶的多次order必須合併為一次操作;

3.不在業務高峰期批量更新、查詢資料庫。

----摘自京東內部規範。

mysql 使用規範 MySQL使用規範

一 表設計類 強制類規範 1.建立表的儲存引擎必須是innodb。2.每個表必須顯式的指定乙個主鍵。3.不允許使用聯合主鍵。4.不允許使用外來鍵。5.不允許存在和主鍵重複的索引。6.自增長字段必須是主鍵或唯一索引。7.不允許在資料庫中儲存諸如,影像之類的二進位制資料。8.不允許使用text型別字段 ...

mysql 使用規範 MySQL使用規範

mysql使用規範 一 核心規範 www.2cto.com 1.不用資料庫做運營,如md5 order by rand 2.控制單錶資料量 a 單錶純int不超過1000w b 單錶含char不超過500w c 單庫不超過300 400個表 3.表字段數少而精 a 影響因素 i.io高效 ii.全表...

mysql使用規範 MySQL使用規範 MySQL

bitscn.com mysql使用規範 一 核心規範 1.不用資料庫做運營,如md5 order by rand 2.控制單錶資料量 a 單錶純int不超過1000w b 單錶含char不超過500w c 單庫不超過300 400個表 3.表字段數少而精 a 影響因素 i.io高效 ii.全表遍歷...