狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

數據庫字段設計規范

admin
2024年9月14日 10:16 本文熱度 937

1、優先選擇符合存儲需要的最小的數據類型

原因

列的字段越大,建立索引時所需要的空間也就越大,這樣一頁中所能存儲的索引節點的數量也就越少也越少,在遍歷時所需要的IO次數也就越多, 索引的性能也就越差。

方法

1)將字符串轉換成數字類型存儲,如:將IP地址轉換成整形數據。

mysql提供了兩個方法來處理ip地址:

inet_aton 把ip轉為無符號整型(4-8位)

inet_ntoa 把整型的ip轉為地址

插入數據前,先用inet_aton把ip地址轉為整型,可以節省空間。顯示數據時,使用inet_ntoa把整型的ip地址轉為地址顯示即可。

2)對于非負型的數據(如自增ID、整型IP)來說,要優先使用無符號整型來存儲

因為:無符號相對于有符號可以多出一倍的存儲空間

SIGNED INT -2147483648~2147483647

UNSIGNED INT 0~4294967295

VARCHAR(N)中的N代表的是字符數,而不是字節數

使用UTF8存儲255個漢字 Varchar(255)=765個字節。過大的長度會消耗更多的內存

2、避免使用TEXT、BLOB數據類型,最常見的TEXT類型可以存儲64k的數據

建議把BLOB或是TEXT列分離到單獨的擴展表中。

Mysql內存臨時表不支持TEXT、BLOB這樣的大數據類型,如果查詢中包含這樣的數據,在排序等操作時,就不能使用內存臨時表,必須使用磁盤臨時表進行。

而且對于這種數據,Mysql還是要進行二次查詢,會使sql性能變得很差,但是不是說一定不能使用這樣的數據類型。

如果一定要使用,建議把BLOB或是TEXT列分離到單獨的擴展表中,查詢時一定不要使用select * 而只需要取出必要的列,不需要TEXT列的數據時不要對該列進行查詢。

TEXT或BLOB類型只能使用前綴索引

因為MySQL對索引字段長度是有限制的,所以TEXT類型只能使用前綴索引,并且TEXT列上是不能有默認值的。

3、避免使用ENUM類型

修改ENUM值需要使用ALTER語句。

ENUM類型的ORDER BY操作效率低,需要額外操作。

禁止使用數值作為ENUM的枚舉值。

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

原因:

索引NULL列需要額外的空間來保存,所以要占用更多的空間;

進行比較和計算時要對NULL值做特別的處理。

5、使用TIMESTAMP(4個字節)或DATETIME類型(8個字節)存儲時間

TIMESTAMP 存儲的時間范圍 1970-01-01 00:00:01 ~ 2038-01-19-03:14:07。

TIMESTAMP 占用4字節和INT相同,但比INT可讀性高。

超出TIMESTAMP取值范圍的使用DATETIME類型存儲。

經常會有人用字符串存儲日期型的數據(不正確的做法):

缺點1:無法用日期函數進行計算和比較。

缺點2:用字符串存儲日期要占用更多的空間。

6、同財務相關的金額類數據必須使用decimal類型

非精準浮點:float,double

精準浮點:decimal

Decimal類型為精準浮點數,在計算時不會丟失精度。占用空間由定義的寬度決定,每4個字節可以存儲9位數字,并且小數點要占用一個字節。可用于存儲比bigint更大的整型數據


該文章在 2024/9/14 10:16:31 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved