成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

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

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

瀏覽:3日期: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編寫(xiě)方面的建議。相信這些規(guī)范適用于大多數(shù)公司,也希望大家都能按照規(guī)范來(lái)使用我們的數(shù)據(jù)庫(kù),這樣我們的數(shù)據(jù)庫(kù)才能發(fā)揮出更高的性能。

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

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

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ù)字和下劃線,一律小寫(xiě)。

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ì)于該表的所有寫(xiě)入,對(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)頭,一律使用小寫(xiě)格式,以字段的名稱或縮寫(xiě)作為后綴。

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編寫(xiě)

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

2.【強(qiáng)制】程序端insert語(yǔ)句指定具體字段名稱,不要寫(xiě)成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)文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
国产成人免费视频一区| 日本一区二区免费在线观看视频| 欧美一区二区国产| 国产人成亚洲第一网站在线播放 | 成人a免费在线看| 亚洲看片网站| 91精品国产高清一区二区三区| 国产精品免费aⅴ片在线观看| 日本人妖一区二区| 成人91在线观看| 久久精品网址| 久久久久久久国产精品影院| 性做久久久久久免费观看| 国产在线精品一区二区不卡了| 欧美日韩另类综合| 91福利国产成人精品照片| 欧美激情一区二区三区在线| 日本成人在线网站| 在线观看不卡| 欧美不卡视频一区| 男女男精品网站| 国产一区激情| 欧美一级在线观看| 丝袜亚洲另类丝袜在线| 欧美成人一区二免费视频软件| 在线精品视频免费观看| 中文字幕一区二区三区在线播放 | 精品国产乱码久久久久久蜜臀| 午夜欧美2019年伦理| 好吊一区二区三区| 欧美一区二区三区人| 天堂久久久久va久久久久| 国产一区二区三区无遮挡| 日韩欧美精品在线| 日韩二区三区在线观看| 91久久久久| 国产午夜亚洲精品羞羞网站| 国产福利一区在线观看| 久久久久国产精品一区三寸| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 国产成人精品三级| 欧美图区在线视频| 天天操天天干天天综合网| 精品91免费| 中文字幕av一区 二区| 9i在线看片成人免费| 91精品国产综合久久香蕉麻豆 | 884aa四虎影成人精品一区| 日韩av中文在线观看| 国产精品日本一区二区| √…a在线天堂一区| 欧美色图首页| 中文字幕在线观看一区二区| 欧美在线视频一区二区三区| 久久综合给合久久狠狠狠97色69| 国产成+人+日韩+欧美+亚洲| 欧美狂野另类xxxxoooo| 国内精品免费在线观看| 欧美图区在线视频| 韩国视频一区二区| 欧美精品aⅴ在线视频| 韩国成人精品a∨在线观看| 欧美日韩一区二区欧美激情 | 精品国产区一区| 成人高清视频免费观看| 久久青草欧美一区二区三区| 99视频一区二区三区| 久久综合九色综合欧美就去吻| 成人福利在线看| 久久蜜桃一区二区| 欧美日韩三区| 日韩伦理av电影| 国产精品一卡| 免费av成人在线| 欧美一区二区视频网站| 国产成人免费网站| 国产亚洲欧美色| 精品91自产拍在线观看一区| 成a人片亚洲日本久久| 精品美女一区二区| 国产精品二区三区四区| 亚洲精品ww久久久久久p站| 国产欧美日韩综合精品二区| 亚洲成人av电影| 欧美日韩一区成人| 99久久99久久综合| 亚洲天堂成人网| 色综合久久天天| 国产激情一区二区三区四区| 久久香蕉国产线看观看99| 91久久国产自产拍夜夜嗨| 蜜臀久久99精品久久久久宅男| 欧美裸体一区二区三区| 色综合色综合色综合色综合色综合 | 日本少妇一区二区| 日韩欧美一级在线播放| 黄色成人在线网站| 亚洲成人免费观看| 欧美狂野另类xxxxoooo| 欧美日本高清| 日韩高清一区二区| 久久亚洲欧美国产精品乐播| 国产日产高清欧美一区二区三区| 青青草一区二区三区| 精品成a人在线观看| 国产日韩欧美三区| 国产一区久久久| 国产精品高清亚洲| 欧美色图激情小说| 欧美日韩另类丝袜其他| 日韩黄色在线观看| 久久精品亚洲精品国产欧美kt∨| 野花国产精品入口| 国产高清不卡一区二区| 亚洲女同一区二区| 欧美岛国在线观看| 国产日韩一区二区三区| 成人一区二区三区在线观看| 一区二区三区在线影院| 日韩欧美一区电影| 免费一级欧美片在线播放| 成年人网站91| 美女一区二区久久| 亚洲视频1区2区| 精品久久国产97色综合| 美日韩精品免费| 欧美成人日韩| 国产成人精品免费| 五月婷婷综合网| 日本一区二区三区电影| 91精品一区二区三区久久久久久 | 久久精品国产色蜜蜜麻豆| 亚洲视频小说图片| 日韩一区二区高清| 一本色道久久综合亚洲91| 午夜欧美精品久久久久久久| 精品一区二区在线播放| 亚洲观看高清完整版在线观看| 久久久国产精品午夜一区ai换脸| 91国偷自产一区二区三区成为亚洲经典 | 欧美肥妇毛茸茸| 久久国产精品高清| 国内自拍视频一区二区三区| 国产麻豆成人传媒免费观看| 亚洲成av人在线观看| 中文字幕一区二区三区精华液 | 日韩欧美在线网站| 欧美日韩国产首页| 久久精品三级| 亚洲综合精品四区| 亚洲电影成人| 欧美激情一区| 欧美一区二区三区在线免费观看| 国产馆精品极品| 久久99精品久久久久久动态图| 午夜精品久久久久久久久久久| 亚洲情趣在线观看| 亚洲国产电影在线观看| 久久这里只有精品6| 欧美一区二区久久| 欧美精品 日韩| 欧美精品九九99久久| 色猫猫国产区一区二在线视频| 亚洲一区黄色| 免费精品视频| 亚洲综合不卡| 久热re这里精品视频在线6| 国产农村妇女毛片精品久久莱园子 | 久久精品视频网| 久久久精品国产免大香伊| 欧美tk—视频vk| 精品1区2区在线观看| 2020国产成人综合网| 久久蜜桃av一区精品变态类天堂| 精品久久久久久久久久久久包黑料| 欧美一二区视频| 精品国产一区二区三区av性色| 久久久久久久综合日本| 久久久久久久久久久久久女国产乱| 日韩欧美一区二区不卡| 久久亚区不卡日本| 国产精品国产自产拍高清av| 国产精品国产精品国产专区不蜜 | 欧美日韩黄色一区二区| 欧美浪妇xxxx高跟鞋交| 国精品**一区二区三区在线蜜桃| 午夜精品福利久久久| 美女网站在线免费欧美精品| 国产一区二区三区精品视频| 成人性生交大片免费看在线播放| av综合在线播放| 欧美日韩精品久久| 国产模特精品视频久久久久| 色一情一伦一子一伦一区| 91超碰这里只有精品国产| 日韩美女在线视频| 国产精品久久久久久久久快鸭 | 欧美精品日日鲁夜夜添| 亚洲精品一区二区三区福利| |精品福利一区二区三区|