日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

MySQL數(shù)據(jù)庫(kù)使用規(guī)范總結(jié)

瀏覽:33日期:2023-10-13 13:14:39

導(dǎo)讀:

關(guān)于MySQL數(shù)據(jù)庫(kù)規(guī)范,相信大家多少看過(guò)一些文檔。本篇文章給大家詳細(xì)分類總結(jié)了數(shù)據(jù)庫(kù)相關(guān)規(guī)范,從庫(kù)表命名設(shè)計(jì)規(guī)范講起,到索引設(shè)計(jì)規(guī)范,后面又給出SQL編寫方面的建議。相信這些規(guī)范適用于大多數(shù)公司,也希望大家都能按照規(guī)范來(lái)使用我們的數(shù)據(jù)庫(kù),這樣我們的數(shù)據(jù)庫(kù)才能發(fā)揮出更高的性能。

關(guān)于庫(kù):

1.【強(qiáng)制】庫(kù)的名稱必須控制在32個(gè)字符以內(nèi),英文一律小寫。

2.【強(qiáng)制】庫(kù)的名稱格式:業(yè)務(wù)系統(tǒng)名稱_子系統(tǒng)名。

3.【強(qiáng)制】庫(kù)名只能使用英文字母,數(shù)字,下劃線,并以英文字母開(kāi)頭。

4.【強(qiáng)制】創(chuàng)建數(shù)據(jù)庫(kù)時(shí)必須顯式指定字符集,并且字符集只能是utf8或者utf8mb4。創(chuàng)建數(shù)據(jù)庫(kù)SQL舉例:Create database db1 default character set utf8;

5.【建議】臨時(shí)庫(kù)、表名以tmp_ 為前綴,并以日期為后綴,備份庫(kù)、表以 bak_ 為前綴,并以日期為后綴。

關(guān)于表

1.【強(qiáng)制】表和列的名稱必須控制在32個(gè)字符以內(nèi),表名只能使用字母、數(shù)字和下劃線,一律小寫。

2.【強(qiáng)制】表名要求模塊名強(qiáng)相關(guān),同一模塊使用的表名盡量使用統(tǒng)一前綴。

3.【強(qiáng)制】創(chuàng)建表時(shí)必須顯式指定字符集為utf8或utf8mb4。

4.【強(qiáng)制】列名盡量不用關(guān)鍵字(如type,order等)。

5.【強(qiáng)制】創(chuàng)建表時(shí)必須顯式指定表存儲(chǔ)引擎類型,如無(wú)特殊需求,一律為InnoDB。

6.【強(qiáng)制】建表必須有comment。

7.【強(qiáng)制】對(duì)于超過(guò)100W行的大表進(jìn)行alter table,必須經(jīng)過(guò)DBA審核,并在業(yè)務(wù)低峰期執(zhí)行,多個(gè)alter需整合在一起。

因?yàn)閍lter table會(huì)產(chǎn)生表鎖,期間阻塞對(duì)于該表的所有寫入,對(duì)于業(yè)務(wù)可能會(huì)產(chǎn)生極大影響。

8.【建議】建表時(shí)關(guān)于主鍵:表必須有主鍵

(1)強(qiáng)制要求主鍵為id,類型為int或bigint,且為auto_increment 建議使用unsigned無(wú)符號(hào)型。

(2)標(biāo)識(shí)表里每一行主體的字段不要設(shè)為主鍵,建議設(shè)為其他字段如user_id,order_id等,并建立unique key索引。

因?yàn)槿绻O(shè)為主鍵且主鍵值為隨機(jī)插入,則會(huì)導(dǎo)致innodb內(nèi)部page分裂和大量隨機(jī)I/O,性能下降。

9.【建議】核心表(如用戶表)必須有行數(shù)據(jù)的創(chuàng)建時(shí)間字段create_time和最后更新時(shí)間字段update_time,便于查問(wèn)題。

10.【建議】表中所有字段盡量都是NOT NULL屬性,業(yè)務(wù)可以根據(jù)需要定義DEFAULT值。

因?yàn)槭褂肗ULL值會(huì)存在每一行都會(huì)占用額外存儲(chǔ)空間、數(shù)據(jù)遷移容易出錯(cuò)、聚合函數(shù)計(jì)算結(jié)果偏差等問(wèn)題。

11.【建議】中間表用于保留中間結(jié)果集,名稱必須以tmp_ 開(kāi)頭。備份表用于備份或抓取源表快照,名稱必須以bak_開(kāi)頭。中間表和備份表定期清理。

12.【示范】一個(gè)較為規(guī)范的建表語(yǔ)句:

CREATE TABLE user_info ( `id` int unsigned NOT NULL AUTO_INCREMENT COMMENT ’自增主鍵’, `user_id` bigint(11) NOT NULL COMMENT ’用戶id’, `username` varchar(45) NOT NULL COMMENT ’真實(shí)姓名’, `email` varchar(30) NOT NULL COMMENT ’用戶郵箱’, `nickname` varchar(45) NOT NULL COMMENT ’昵稱’, `birthday` date NOT NULL COMMENT ’生日’, `sex` tinyint(4) DEFAULT ’0’ COMMENT ’性別’, `short_introduce` varchar(150) DEFAULT NULL COMMENT ’一句話介紹自己,最多50個(gè)漢字’, `user_resume` varchar(300) NOT NULL COMMENT ’用戶提交的簡(jiǎn)歷存放地址’, `user_register_ip` int NOT NULL COMMENT ’用戶注冊(cè)時(shí)的源ip’, `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT ’創(chuàng)建時(shí)間’, `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT ’修改時(shí)間’, `user_review_status` tinyint NOT NULL COMMENT ’用戶資料審核狀態(tài),1為通過(guò),2為審核中,3為未通過(guò),4為還未提交審核’, PRIMARY KEY (`id`), UNIQUE KEY `uniq_user_id` (`user_id`), KEY `idx_username`(`username`), KEY `idx_create_time_status`(`create_time`,`user_review_status`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT=’網(wǎng)站用戶基本信息’

關(guān)于索引

1.【強(qiáng)制】InnoDB表必須主鍵為id int/bigint auto_increment,且主鍵值禁止被更新。

2.【強(qiáng)制】InnoDB和MyISAM存儲(chǔ)引擎表,索引類型必須為BTREE。

3.【建議】主鍵的名稱以 pk_ 開(kāi)頭,唯一鍵以 uniq_ 或 uk_ 開(kāi)頭,普通索引以 idx_ 開(kāi)頭,一律使用小寫格式,以字段的名稱或縮寫作為后綴。

4.【建議】單個(gè)表上的索引個(gè)數(shù)不能超過(guò)8個(gè)。

5.【建議】在建立索引時(shí),多考慮建立聯(lián)合索引,并把區(qū)分度最高的字段放在最前面。如列userid的區(qū)分度可由select count(distinct userid)計(jì)算出來(lái)。

6.【建議】在多表join的SQL里,保證被驅(qū)動(dòng)表的連接列上有索引,這樣join執(zhí)行效率最高。

7.【建議】建表或加索引時(shí),保證表里互相不存在冗余索引。對(duì)于MySQL來(lái)說(shuō),如果表里已經(jīng)存在key(a,b),則key(a)為冗余索引,需要?jiǎng)h除。

SQL編寫

1.【強(qiáng)制】程序端SELECT語(yǔ)句必須指定具體字段名稱,禁止寫成 *。

2.【強(qiáng)制】程序端insert語(yǔ)句指定具體字段名稱,不要寫成insert into t1 values(…)。

3.【強(qiáng)制】除靜態(tài)表或小表(100行以內(nèi)),DML語(yǔ)句必須有where條件,且使用索引查找。

4.【強(qiáng)制】where條件里等號(hào)左右字段類型必須一致,否則無(wú)法利用索引。

5.【強(qiáng)制】WHERE 子句中禁止只使用全模糊的LIKE條件進(jìn)行查找,必須有其他等值或范圍查詢條件,否則無(wú)法利用索引。

6.【強(qiáng)制】索引列不要使用函數(shù)或表達(dá)式,否則無(wú)法利用索引。如where length(name)=’Admin’或where user_id+2=10023。

7.【建議】insert into…values(XX),(XX),(XX).. 這里XX的值不要超過(guò)5000個(gè)。值過(guò)多雖然上線很很快,但會(huì)引起主從同步延遲。

8.【建議】SELECT語(yǔ)句不要使用UNION,推薦使用UNION ALL,并且UNION子句個(gè)數(shù)限制在5個(gè)以內(nèi)。因?yàn)閡nion all不需要去重,節(jié)省數(shù)據(jù)庫(kù)資源,提高性能。

9.【強(qiáng)制】禁止跨db的join語(yǔ)句。

10.【建議】不建議使用子查詢,建議將子查詢SQL拆開(kāi)結(jié)合程序多次查詢,或使用join來(lái)代替子查詢。

11.【建議】線上環(huán)境,多表join不要超過(guò)5個(gè)表。

12.【建議】在多表join中,盡量選取結(jié)果集較小的表作為驅(qū)動(dòng)表,來(lái)join其他表。

13.【建議】批量操作數(shù)據(jù)時(shí),需要控制事務(wù)處理間隔時(shí)間,進(jìn)行必要的sleep。

14.【建議】事務(wù)里包含SQL不超過(guò)5個(gè)因?yàn)檫^(guò)長(zhǎng)的事務(wù)會(huì)導(dǎo)致鎖數(shù)據(jù)較久,MySQL內(nèi)部緩存、連接消耗過(guò)多等問(wèn)題。

15.【建議】事務(wù)里更新語(yǔ)句盡量基于主鍵或unique key,如update … where id=XX;否則會(huì)產(chǎn)生間隙鎖,內(nèi)部擴(kuò)大鎖定范圍,導(dǎo)致系統(tǒng)性能下降,產(chǎn)生死鎖。

16.【建議】減少使用order by,和業(yè)務(wù)溝通能不排序就不排序,或?qū)⑴判蚍诺匠绦蚨巳プ觥rder by、group by、distinct這些語(yǔ)句較為耗費(fèi)CPU,數(shù)據(jù)庫(kù)的CPU資源是極其寶貴的。

17.【建議】order by、group by、distinct這些SQL盡量利用索引直接檢索出排序好的數(shù)據(jù)。如where a=1 order by b可以利用key(a,b)。

18.【建議】包含了order by、group by、distinct這些查詢的語(yǔ)句,where條件過(guò)濾出來(lái)的結(jié)果集請(qǐng)保持在1000行以內(nèi),否則SQL會(huì)很慢。

以上就是MySQL數(shù)據(jù)庫(kù)使用規(guī)范的詳細(xì)內(nèi)容,更多關(guān)于MySQL使用規(guī)范的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: MySQL 數(shù)據(jù)庫(kù)
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
jizzjizz中国精品麻豆| 免费一级欧美片在线观看网站| 国产亚洲欧美日韩精品一区二区三区| 午夜精品影院| 欧美福利一区| 亚洲韩日在线| 欧美日韩在线二区| 99久久精品国产亚洲精品| 欧美国产美女| 日韩电影在线视频| a日韩av网址| 久久久久99| 久久婷婷久久| 精品中文一区| 99视频精品视频高清免费| 精品国模一区二区三区| 97视频热人人精品免费| 在线亚洲人成| 99久久夜色精品国产亚洲1000部| 国产综合欧美| 91久久久久| 先锋亚洲精品| 免费成人性网站| 亚洲影视一区二区三区| 亚洲美女91| 欧美一区=区三区| 欧美黑人做爰爽爽爽| 精品国产aⅴ| 水蜜桃精品av一区二区| 精品日韩在线| 精品三级久久| 久久亚洲国产| 先锋影音久久久| 91综合久久爱com| 国产精品日本一区二区三区在线 | 99精品在线观看| 99视频在线精品国自产拍免费观看| 亚洲永久精品唐人导航网址| 国产三级一区| 亚洲va中文在线播放免费| 好看的亚洲午夜视频在线| 亚洲精品成人一区| 国产精品任我爽爆在线播放| 成人一区而且| 伊人久久大香线蕉av超碰演员| 丝瓜av网站精品一区二区 | 午夜性色一区二区三区免费视频| 国产精选一区| 国产91一区| 日韩成人午夜精品| 国产成人精品一区二区三区在线| 久久精品动漫| 亚洲精品黄色| 日韩在线看片| 亚洲精品自拍| 国产suv精品一区二区四区视频| 神马午夜久久| 日本少妇一区二区| 日韩天堂在线| 日日夜夜免费精品| 久久亚洲国产精品尤物| 欧美.日韩.国产.一区.二区 | 手机在线电影一区| 亚洲视频电影在线| 久久免费福利| 久久av在线| 精品久久国产一区| 婷婷色综合网| 免费日韩成人| 黄色欧美在线| 精品91久久久久| 亚洲精品少妇| 日韩欧美中文| 亚洲制服一区| 三级亚洲高清视频| а√天堂8资源在线| 蜜桃久久久久| 午夜国产精品视频| 久久精品凹凸全集| 综合干狼人综合首页| 亚洲精品乱码| 久久超碰99| 国产视频欧美| 欧美日本久久| 日韩欧美高清一区二区三区| 久久美女性网| 久久精品日韩欧美| 亚洲精品电影| 久久99高清| 欧美大黑bbbbbbbbb在线| 精品日本视频| 91精品啪在线观看国产爱臀| 美女视频黄 久久| 久久在线视频免费观看| 久久影院一区二区三区| 日本成人在线视频网站| 亚洲精品自拍| 伊人久久亚洲美女图片| 丝袜av一区| 精品日韩一区| 激情综合网站| 免费污视频在线一区| 久久国产精品色av免费看| 亚洲日韩中文字幕一区| 老色鬼精品视频在线观看播放| 日韩1区2区3区| 国产精品毛片一区二区三区| 麻豆精品蜜桃视频网站| 国产精品一区二区三区www| 久久国产精品久久w女人spa| 中文日韩在线| 日韩午夜电影| 日韩精品一区二区三区免费视频| 精品国产乱码久久久| 在线观看一区| 精品一区毛片| 日韩免费福利视频| 麻豆91精品视频| 日韩av一区二区三区四区| 999在线观看精品免费不卡网站| 国产精品一二| 精品国产a一区二区三区v免费| 日韩中文字幕一区二区高清99| 亚洲色图国产| 亚洲深爱激情| 中文不卡在线| 国产精选一区| 香蕉视频亚洲一级| 婷婷五月色综合香五月| 欧美日韩国产综合网| 婷婷成人基地| 亚洲手机在线| 欧美在线观看视频一区| 欧美日韩在线二区| 亚洲男女av一区二区| 欧美美女一区| 亚洲精品小说| 亚洲一区二区小说| 日韩高清国产一区在线| 国产精品调教视频| 久久久久久网| 欧美理论视频| 亚洲综合福利| 国产亚洲精品久久久久婷婷瑜伽| 国产视频一区三区| 综合激情视频| 啪啪亚洲精品| 美女久久久精品| a国产在线视频| 免费视频国产一区| 免费成人在线影院| 欧美精品影院| 九九久久国产| 国产v综合v| 国产综合激情| 中文字幕一区二区三区在线视频| 日韩高清一级| 久久久久亚洲精品中文字幕| 久久精品日韩欧美| 久久精品二区三区| 香蕉久久久久久久av网站| 91成人精品观看| 成人在线丰满少妇av| 国产综合视频| 亚洲精品一级二级三级| 国产欧美一区二区精品久久久| 欧美成a人片免费观看久久五月天| 国产精品久久久久久久免费观看| 免费久久久久久久久| 亚洲91网站| 欧美激情 亚洲a∨综合| bbw在线视频| 久久国产99| 久久国产麻豆精品| 91看片一区| 伊人久久亚洲| 福利一区和二区| 一本色道精品久久一区二区三区| 日韩黄色av| av最新在线| 模特精品在线| 久久亚洲黄色| 亚洲欧洲一区二区天堂久久| 国产精品一区高清| 欧美日韩少妇| 精品视频自拍| 日韩精品一二区| 中文字幕在线视频网站| 午夜久久福利| 国产精品sss在线观看av| 激情国产在线| 日本不卡不码高清免费观看| 成人午夜精品| 日本午夜精品一区二区三区电影| 欧美一区久久久| 爽好久久久欧美精品| 国产一区二区三区久久| 日韩在线a电影| 精品日韩视频| 国产伦精品一区二区三区千人斩|