溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

表結(jié)構(gòu)定義優(yōu)化的專題報(bào)告

發(fā)布時(shí)間:2020-07-23 15:19:48 來(lái)源:網(wǎng)絡(luò) 閱讀:392 作者:necther 欄目:數(shù)據(jù)庫(kù)
專題描述閱讀Ecbil項(xiàng)目的數(shù)據(jù)庫(kù)表結(jié)構(gòu)定義,發(fā)現(xiàn)存在普遍共性的不合理地方,整理成專題報(bào)告供研發(fā)團(tuán)隊(duì)和DBA團(tuán)隊(duì)優(yōu)化,及輔佐今后的表結(jié)構(gòu)定義設(shè)計(jì)。
問(wèn)題提出1示例表結(jié)構(gòu)定義:表結(jié)構(gòu)定義優(yōu)化的專題報(bào)告
2`id` BIGINT(20) UNSIGNED NOT NULL,PRIMARY KEY (`id`)
3`dept_name` VARCHAR(128) DEFAULT NULL COMMENT '機(jī)構(gòu)名稱'
4`dept_desc` VARCHAR(512) DEFAULT NULL COMMENT '機(jī)構(gòu)描述'
5`type_level` DECIMAL(4,0) DEFAULT NULL COMMENT '類型層次'
6`email_addr` VARCHAR(128) DEFAULT NULL
7`belong_county` VARCHAR(1024) DEFAULT NULL
8`update_tm` DATETIME DEFAULT NULL
9UNIQUE KEY `idx_department_1` (`dept_code`) USING BTREE,
KEY `IDX_DEPARTMENT_DEPT_CODE` (`dept_code`)
10 `cod_state` char(5) DEFAULT NULL
分析過(guò)程1咨詢研發(fā)團(tuán)隊(duì)對(duì)應(yīng)的系統(tǒng)界面輸入框限制
2分析表結(jié)構(gòu)定義
解決方案1字段定義長(zhǎng)度比前端頁(yè)面的輸入框限制適度放大點(diǎn),比如增加5%-10%
2郵箱地址的行業(yè)標(biāo)準(zhǔn)40個(gè)字符左右,例如belong_county、belong_village等字符類型的字段
3type_level等類型字段的數(shù)值范圍,可以選擇 UNSINGED 的TINYINT和SMALLINT
4除主鍵和業(yè)務(wù)特殊的字段外,所有字段設(shè)置默認(rèn)值,建議:數(shù)值類型字段默認(rèn)值為0,字符串類型默認(rèn)值為''空字符串;日期類型默認(rèn)值為'0000-00-00'
5MySQL數(shù)據(jù)庫(kù)的主鍵、唯一鍵和外鍵,都具有索引的功效
6除出生日期等特殊存儲(chǔ)要求外,其他日期數(shù)據(jù)全使用存儲(chǔ)空間更小和完整時(shí)間功能的TIMESTAMP日期類型
7InnoDB存儲(chǔ)引擎的緣故,建議不使用CHA(N),直接全部使用VARCHAR(N)
問(wèn)題原因1字段定義長(zhǎng)度嚴(yán)重超過(guò)業(yè)務(wù)方需求無(wú)實(shí)際意義,還會(huì)導(dǎo)致數(shù)據(jù)寫(xiě)入的性能問(wèn)題
2指定默認(rèn)值有利于簡(jiǎn)化程序的處理異常復(fù)雜度和增加可讀性
知識(shí)點(diǎn)1MySQL數(shù)據(jù)庫(kù)VARCHAR(N)中的N是表示多個(gè)字符,不同于Oracle和MSSQL的字節(jié)個(gè)數(shù)表示
2DATETIME日期類型占用8個(gè)字節(jié),TIMESTAMP占用4個(gè)字節(jié)


向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI