MySQL開發規範與使用技巧總結

2021-09-27 03:53:16 字數 2215 閱讀 8689

1.庫名、表名、欄位名必須使用小寫字母,並採用下劃線分割。 

2.庫名、表名、欄位名禁止超過32個字元。 

3.使用innodb儲存引擎。 

4.庫名、表名、欄位名禁止使用mysql保留字。 

5.禁止使用分割槽表。 

6.建議使用unsigned儲存非負數值。 

7.建議使用int unsigned儲存ipv4。 

select inet_aton('209.207.224.40'); 3520061480select inet_ntoa(3520061480); 209.207.224.40
8.強烈建議使用tinyint來代替enum型別。 

9.使用varbinary儲存大小寫敏感的變長字串或二進位制內容。 

10.int型別固定占用4位元組儲存 

11.區分使用datetime和timestamp。 

如何使用timestamp的自動賦值屬性? 

column1 timestamp default current_timestamp on updatecurrent_timestamp
b)只是自動初始化:

column1 timestamp default current_timestamp
c)自動更新,初始化的值為0:

column1 timestamp default 0 on update current_timestamp
d)初始化的值為0:

column1 timestamp default 0
12.所有欄位均定義為not null。 

1.將大字段、訪問頻率低的字段拆分到單獨的表中儲存,分離冷熱資料。 

2.禁止在資料庫中儲存明文密碼。 

3.表必須有主鍵,推薦使用unsigned自增列作為主鍵。 

4.禁止冗餘索引。 

5.禁止重複索引。 

6.不在低基數列上建立索引,例如「性別」。 

7.合理使用覆蓋索引減少io,避免排序。select email,uid from user_email where uid=xx,如果uid不是主鍵,適當時候可以將索引新增為index(uid,email),以獲得效能提公升。

8.用in代替or。sql語句中in包含的值不應過多,應少於1000個。 

9.表字符集使用utf8,必要時可申請使用utf8mb4字符集。 

10.用union all代替union。 

11.禁止使用order by rand()。 

12.建議使用合理的分頁方式以提高分頁效率。 

select * from table order by time desc limit 10000,10;
這種分頁方式會導致大量的io,因為mysql使用的是提前讀取策略。 

select * from table where time13.select只獲取必要的字段,禁⽌止使用select *。 

14.sql中避免出現now()、rand()、sysdate()、current_user()等不確定結果的函式。 

15.採用合適的分庫分表策略。例如千庫十表、十庫百錶等。 

16.減少與資料庫互動次數,盡量採用批量sql語句。 

a)insert ... on duplicate key updateb)replace intoc)insert ignore

d)insert into values()

17.拆分複雜sql為多個小sql,避免大事務。 

18.對同乙個表的多次alter操作必須合併為一次操作。 

alter table t add column b varchar(10);
然後增加索引:

alter table t add index idx_aa(aa);
正確的做法是:

alter table t add column b varchar(10),add index idx_aa(aa);
19.避免使用儲存過程、觸發器、檢視、自定義函式等。 

20.禁止有super許可權的應用程式賬號存在。 

21.不要在mysql資料庫中存放業務邏輯。 

出處:

mysql 的開發規範 MySQL開發規範

一 基礎規範 1 使用innodb儲存引擎 2 資料庫字符集使用utf8,校對字符集使用utf8 general ci 3 所有表 欄位都盡量新增注釋 4 庫名 表名 欄位名使用小寫字母,禁止超過32個字元,須見名知意 5 非唯一索引以 idx 欄位1 欄位2 命名,唯一索引必須以 uniq 欄位1...

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.全表...