欧美人两个人激情的免费视频_国产亚洲人成网站在线观看不卡_直接看毛片_免费乱理伦片在线观看app

十三年專(zhuān)注于網(wǎng)站建設(shè)與互聯(lián)網(wǎng)應(yīng)用開(kāi)發(fā),低調(diào)、有情懷的網(wǎng)絡(luò)應(yīng)用服務(wù)商!
南昌百恒科技微信公眾號(hào) 掃一掃關(guān)注
tel-icon全國(guó)服務(wù)熱線:400-680-9298,0791-88117053
掃一掃關(guān)注百恒科技微信公眾號(hào)

MySQL數(shù)據(jù)庫(kù)字段設(shè)計(jì)規(guī)范是什么?

百恒 2023-03-03 16:36:38 609
? ? ? ?MySQL數(shù)據(jù)庫(kù)是當(dāng)下廣大網(wǎng)絡(luò)開(kāi)發(fā)公司在網(wǎng)站建設(shè)時(shí)使用非常常見(jiàn)的一種網(wǎng)站數(shù)據(jù)庫(kù),MySQL由于是開(kāi)放源碼軟件,因此可以大大降低總體擁有成本,深受廣大企業(yè)的喜愛(ài),下面南昌網(wǎng)站建設(shè)開(kāi)發(fā)公司百恒科技小編來(lái)跟大家聊一下MySQL數(shù)據(jù)庫(kù)字段設(shè)計(jì)規(guī)范是什么。


MySQL數(shù)據(jù)庫(kù)字段設(shè)計(jì)規(guī)范是什么


? ? ? ?一、優(yōu)先選擇符合存儲(chǔ)需要的蕞小的數(shù)據(jù)類(lèi)型

? ? ? ?因?yàn)榱械淖侄卧酱螅⑺饕龝r(shí)所需要的空間也會(huì)越大,這樣一頁(yè)中所能存儲(chǔ)的索引節(jié)點(diǎn)的數(shù)量也會(huì)越少,在遍歷時(shí)所需要的IO次數(shù)也越多, 索引的性能也會(huì)越差。
處理方法

? ? ? ?1、將字符串轉(zhuǎn)換成數(shù)字類(lèi)型存儲(chǔ),如:將IP地址轉(zhuǎn)換成整形數(shù)據(jù)。

? ? ? ?mysql提供了兩個(gè)方法來(lái)處理ip地址:

? ? ? ?inet_aton 把ip轉(zhuǎn)為無(wú)符號(hào)整型(4-8位)

? ? ? ?inet_ntoa 把整型的ip轉(zhuǎn)為地址

? ? ? ?插入數(shù)據(jù)前,先用inet_aton把ip地址轉(zhuǎn)為整型,可以節(jié)省空間。顯示數(shù)據(jù)時(shí),使用inet_ntoa把整型的ip地址轉(zhuǎn)為地址顯示即可。

? ? ? ?2、對(duì)于非負(fù)型的數(shù)據(jù)(如自增ID、整型IP)來(lái)說(shuō),要優(yōu)先使用無(wú)符號(hào)整型來(lái)存儲(chǔ)

? ? ? ?因?yàn)椋簾o(wú)符號(hào)相對(duì)于有符號(hào)可以多出一倍的存儲(chǔ)空間

? ? ? ?SIGNED INT -2147483648~2147483647

? ? ? ?UNSIGNED INT 0~4294967295

? ? ? ?VARCHAR(N)中的N代表的是字符數(shù),而不是字節(jié)數(shù)

? ? ? ?使用UTF8存儲(chǔ)255個(gè)漢字 Varchar(255)=765個(gè)字節(jié)。過(guò)大的長(zhǎng)度會(huì)消耗更多的內(nèi)存

? ? ? ?二、避免使用TEXT、BLOB數(shù)據(jù)類(lèi)型,蕞常見(jiàn)的TEXT類(lèi)型可以存儲(chǔ)64k的數(shù)據(jù)

? ? ? ?建議把BLOB或是TEXT列分離到單獨(dú)的擴(kuò)展表中

? ? ? ?Mysql內(nèi)存臨時(shí)表不支持TEXT、BLOB這樣的大數(shù)據(jù)類(lèi)型,如果查詢(xún)中包含這樣的數(shù)據(jù),在排序等操作時(shí),不能使用內(nèi)存臨時(shí)表,必須使用磁盤(pán)臨時(shí)表進(jìn)行。

? ? ? ?而且對(duì)于這種數(shù)據(jù),Mysql還是要進(jìn)行二次查詢(xún),會(huì)使sql性能變得很差,但是不是說(shuō)一定不能使用這樣的數(shù)據(jù)類(lèi)型。

? ? ? ?如果一定要使用,建議把BLOB或是TEXT列分離到單獨(dú)的擴(kuò)展表中,查詢(xún)時(shí)一定不要使用select * 而只需要取出必要的列,不需要TEXT列的數(shù)據(jù)時(shí)不要對(duì)該列進(jìn)行查詢(xún)。

? ? ? ?TEXT或BLOB類(lèi)型只能使用前綴索引

? ? ? ?因?yàn)镸ySQL對(duì)索引字段長(zhǎng)度是有限制的,所以TEXT類(lèi)型只能使用前綴索引,并且TEXT列上是不能有默認(rèn)值的。

? ? ? ?三、避免使用ENUM類(lèi)型

? ? ? ?1、修改ENUM值需要使用ALTER語(yǔ)句

? ? ? ?2、ENUM類(lèi)型的ORDER BY操作效率低,需要額外操作

? ? ? ?3、禁止使用數(shù)值作為ENUM的枚舉值

? ? ? ?四、盡可能把所有列定義為NOT NULL

? ? ? ?1、因?yàn)樗饕齆ULL列需要額外的空間來(lái)保存,所以要占用更多的空間;

? ? ? ?2、進(jìn)行比較和計(jì)算時(shí)要對(duì)NULL值做特別的處理

? ? ? ?五、使用TIMESTAMP(4個(gè)字節(jié))或DATETIME類(lèi)型(8個(gè)字節(jié))存儲(chǔ)時(shí)間

? ? ? ?TIMESTAMP 存儲(chǔ)的時(shí)間范圍 1970-01-01 00:00:01 ~ 2038-01-19-03:14:07。

? ? ? ?TIMESTAMP 占用4字節(jié)和INT相同,但比INT可讀性高

? ? ? ?超出TIMESTAMP取值范圍的使用DATETIME類(lèi)型存儲(chǔ)。

? ? ? ?經(jīng)常會(huì)有人用字符串存儲(chǔ)日期型的數(shù)據(jù)(不正確的做法):

? ? ? ?缺點(diǎn)1:無(wú)法用日期函數(shù)進(jìn)行計(jì)算和比較

? ? ? ?缺點(diǎn)2:用字符串存儲(chǔ)日期要占用更多的空間

? ? ? ?六、同財(cái)務(wù)相關(guān)的金額類(lèi)數(shù)據(jù)必須使用decimal類(lèi)型

? ? ? ?1、非睛準(zhǔn)浮點(diǎn):float,double

? ? ? ?2、睛準(zhǔn)浮點(diǎn):decimal

? ? ? ?Decimal類(lèi)型為睛準(zhǔn)浮點(diǎn)數(shù),在計(jì)算時(shí)不會(huì)丟失精度。占用空間由定義的寬度決定,每4個(gè)字節(jié)可以存儲(chǔ)9位數(shù)字,并且小數(shù)點(diǎn)要占用一個(gè)字節(jié)。可用于存儲(chǔ)比bigint更大的整型數(shù)據(jù)。

? ? ? ?以上是南昌網(wǎng)站建設(shè)開(kāi)發(fā)公司百恒科技小編要跟大家聊到的一些關(guān)于MySQL數(shù)據(jù)庫(kù)字段設(shè)計(jì)規(guī)范的內(nèi)容,希望能夠?qū)Υ蠹矣兴鶐椭胍私飧嚓P(guān)于這方面的內(nèi)容,歡迎留言咨詢(xún)百恒科技,百恒科技是一家有著16年經(jīng)驗(yàn)的網(wǎng)絡(luò)開(kāi)發(fā)公司,專(zhuān)注于南昌網(wǎng)站建設(shè)開(kāi)發(fā)南昌小程序開(kāi)發(fā)等互聯(lián)網(wǎng)服務(wù)!


相關(guān)文章推薦? ?:? ? MySQL中trim函數(shù)的用法? ? ?

? ? ? ? ? ? ? ? ? ? ? ?MySQL數(shù)據(jù)庫(kù)基本設(shè)計(jì)規(guī)范是什么?? ??
400-680-9298,0791-88117053
掃一掃關(guān)注百恒網(wǎng)絡(luò)微信公眾號(hào)

歡迎您的光顧,我們將竭誠(chéng)為您服務(wù)×

售前咨詢(xún) 售前咨詢(xún)
 
售前咨詢(xún) 售前咨詢(xún)
 
售前咨詢(xún) 售前咨詢(xún)
 
售前咨詢(xún) 售前咨詢(xún)
 
售前咨詢(xún) 售前咨詢(xún)
 
售后服務(wù) 售后服務(wù)
 
備案專(zhuān)線 備案專(zhuān)線
 
售后服務(wù) 售后服務(wù)
 
×