MySQL有哪些開發(fā)規(guī)范

這期內(nèi)容當中小編將會給大家?guī)碛嘘P(guān)MySQL有哪些開發(fā)規(guī)范,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

成都創(chuàng)新互聯(lián)公司網(wǎng)絡(luò)公司擁有10多年的成都網(wǎng)站開發(fā)建設(shè)經(jīng)驗,上千客戶的共同信賴。提供網(wǎng)站制作、網(wǎng)站設(shè)計、網(wǎng)站開發(fā)、網(wǎng)站定制、友情鏈接、建網(wǎng)站、網(wǎng)站搭建、響應(yīng)式網(wǎng)站、網(wǎng)頁設(shè)計師打造企業(yè)風格,提供周到的售前咨詢和貼心的售后服務(wù)

#MySQL開發(fā)規(guī)范

##命名規(guī)范

  • 庫名、表名、字段名必須使用小寫字母,并采用下劃線分割

  • 庫名、表名、字段名禁止超過32字字符。須見名之意

  • 庫名、表名、字段名禁止使用Mysql保留字

  • 臨時庫、表名必須以tmp為前綴,并以日期為后綴

  • 備份庫、表名必須以bak為前綴,并以日期為后綴

create table user ...
tmp_user_20160606
bak_user_20160606

##基礎(chǔ)規(guī)范

  • 使用innodb存儲引擎

  • 表字符集使用utf-8

  • 所有表必須添加注釋

  • 單表數(shù)據(jù)量控制在5000w以內(nèi)

  • 不在數(shù)據(jù)庫中存儲圖片、文件等大數(shù)據(jù)

  • 禁止在線上做數(shù)據(jù)庫壓力測試

##庫表設(shè)計

  • 禁止使用分區(qū)表

  • 拆分大字段和訪問頻率低的字段,分離冷熱數(shù)據(jù)

  • 用hash進行散表,表名后綴使用十進制數(shù),下標從0開始

  • 按日期時間分表需符合YYYY[MM][DD][HH]格式

  • 采用合適的分庫分表策略。例如十庫百表等

##字段設(shè)計

  • 所有字段均定義為not null

  • 盡量不使用TEXT、BLOB類型

  • 使用decimal代替float和double存儲精確浮點數(shù)

  • 使用tinyint代替enum類型

  • 使用unsigned存儲非負整數(shù)

  • 使用timestamp存儲時間

  • 使用int存儲時間戳

  • 使用int存儲ip

  • 禁止在數(shù)據(jù)庫存儲明文密碼

##索引規(guī)范

  • 單張表索引數(shù)量不超過5個

  • 單個索引中的字段數(shù)不超過5個

  • 前綴索引長度不超過8個字符

  • 區(qū)分度最大的字段放在前面。如:聯(lián)合索引

  • 盡量不選擇字符串列

  • 不使用外鍵

  • 不使用更新頻繁的列

  • 不使用UUID MD5 HASH

  • 不使用%前導的查詢,如like "%ab"

  • 不使用負向查詢,如not in/like

  • 不在低基數(shù)列上建立索引,例如:性別

  • 不在索引列進行數(shù)學運算和函數(shù)運算

##SQL設(shè)計

  • 充分利用前綴索引,例如:最左前綴

  • 不使用select *

  • 不能同時用到兩個范圍條件

  • 不使用存儲過程、觸發(fā)器、視圖等

  • 不使用大表join

  • 不使用數(shù)學運算和邏輯判斷

  • 不使用order by rand()

  • 不使用單條sql語句同時更新多個表

  • 多使用insert ... on duplicate key update

  • 多使用replace into、insert ignore、insert into values(),(),()

  • 多使用update ... where id in(10,20,50,...)

  • 使用in代替or, in的值不超過1000個

  • 使用explain診斷,避免生成臨時表

  • 使用union all而不是union

###good select * from profiles where sex='M' order by rating limit 10; select * from profiles inner join (select  from profiles where x.sex='M' order by rating limit 100000,10) as x using (); ###bad select * from profiles where sex='M' order by rating limit 100000,10;

##行為規(guī)范

  • 禁止有super權(quán)限的應(yīng)用程序賬號存在

  • 不在業(yè)務(wù)高峰其期批量更新、查詢數(shù)據(jù)庫

  • 提交線上建表改表需求,必須詳細注明所有相關(guān)sql語句

上述就是小編為大家分享的MySQL有哪些開發(fā)規(guī)范了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

標題名稱:MySQL有哪些開發(fā)規(guī)范
網(wǎng)站URL:http://muchs.cn/article28/gdcpcp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁設(shè)計公司、Google、域名注冊、App開發(fā)、網(wǎng)站營銷、微信小程序

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運營