這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)碛嘘P(guān)MySQL有哪些開發(fā)規(guī)范,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
成都創(chuàng)新互聯(lián)公司網(wǎng)絡(luò)公司擁有10多年的成都網(wǎng)站開發(fā)建設(shè)經(jīng)驗(yàn),上千客戶的共同信賴。提供網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、網(wǎng)站開發(fā)、網(wǎng)站定制、友情鏈接、建網(wǎng)站、網(wǎng)站搭建、響應(yīng)式網(wǎng)站、網(wǎng)頁設(shè)計(jì)師打造企業(yè)風(fēng)格,提供周到的售前咨詢和貼心的售后服務(wù)
#MySQL開發(fā)規(guī)范
##命名規(guī)范
庫名、表名、字段名必須使用小寫字母,并采用下劃線分割
庫名、表名、字段名禁止超過32字字符。須見名之意
庫名、表名、字段名禁止使用Mysql保留字
臨時(shí)庫、表名必須以tmp為前綴,并以日期為后綴
備份庫、表名必須以bak為前綴,并以日期為后綴
create table user ... tmp_user_20160606 bak_user_20160606
##基礎(chǔ)規(guī)范
使用innodb存儲(chǔ)引擎
表字符集使用utf-8
所有表必須添加注釋
單表數(shù)據(jù)量控制在5000w以內(nèi)
不在數(shù)據(jù)庫中存儲(chǔ)圖片、文件等大數(shù)據(jù)
禁止在線上做數(shù)據(jù)庫壓力測(cè)試
##庫表設(shè)計(jì)
禁止使用分區(qū)表
拆分大字段和訪問頻率低的字段,分離冷熱數(shù)據(jù)
用hash進(jìn)行散表,表名后綴使用十進(jìn)制數(shù),下標(biāo)從0開始
按日期時(shí)間分表需符合YYYY[MM][DD][HH]格式
采用合適的分庫分表策略。例如十庫百表等
##字段設(shè)計(jì)
所有字段均定義為not null
盡量不使用TEXT、BLOB類型
使用decimal代替float和double存儲(chǔ)精確浮點(diǎn)數(shù)
使用tinyint代替enum類型
使用unsigned存儲(chǔ)非負(fù)整數(shù)
使用timestamp存儲(chǔ)時(shí)間
使用int存儲(chǔ)時(shí)間戳
使用int存儲(chǔ)ip
禁止在數(shù)據(jù)庫存儲(chǔ)明文密碼
##索引規(guī)范
單張表索引數(shù)量不超過5個(gè)
單個(gè)索引中的字段數(shù)不超過5個(gè)
前綴索引長(zhǎng)度不超過8個(gè)字符
區(qū)分度最大的字段放在前面。如:聯(lián)合索引
盡量不選擇字符串列
不使用外鍵
不使用更新頻繁的列
不使用UUID MD5 HASH
不使用%前導(dǎo)的查詢,如like "%ab"
不使用負(fù)向查詢,如not in/like
不在低基數(shù)列上建立索引,例如:性別
不在索引列進(jìn)行數(shù)學(xué)運(yùn)算和函數(shù)運(yùn)算
##SQL設(shè)計(jì)
充分利用前綴索引,例如:最左前綴
不使用select *
不能同時(shí)用到兩個(gè)范圍條件
不使用存儲(chǔ)過程、觸發(fā)器、視圖等
不使用大表join
不使用數(shù)學(xué)運(yùn)算和邏輯判斷
不使用order by rand()
不使用單條sql語句同時(shí)更新多個(gè)表
多使用insert ... on duplicate key update
多使用replace into、insert ignore、insert into values(),(),()
多使用update ... where id in(10,20,50,...)
使用in代替or, in的值不超過1000個(gè)
使用explain診斷,避免生成臨時(shí)表
使用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)用程序賬號(hào)存在
不在業(yè)務(wù)高峰其期批量更新、查詢數(shù)據(jù)庫
提交線上建表改表需求,必須詳細(xì)注明所有相關(guān)sql語句
上述就是小編為大家分享的MySQL有哪些開發(fā)規(guī)范了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
標(biāo)題名稱:MySQL有哪些開發(fā)規(guī)范
網(wǎng)站URL:http://aaarwkj.com/article28/gdcpcp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁設(shè)計(jì)公司、Google、域名注冊(cè)、App開發(fā)、網(wǎng)站營銷、微信小程序
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)