日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
數(shù)據(jù)庫枚舉類型:精準控制對象狀態(tài)(數(shù)據(jù)庫枚舉類型對象)

隨著現(xiàn)代軟件應(yīng)用程序的不斷發(fā)展,數(shù)據(jù)的存儲和處理越來越復雜,因此在數(shù)據(jù)庫設(shè)計中,枚舉類型在控制對象狀態(tài)方面變得越來越重要。枚舉類型是一種特殊的數(shù)據(jù)類型,用于定義具有預定義值列表的變量。使用枚舉類型時,可以更好地控制對象狀態(tài),并減少錯誤的發(fā)生。

創(chuàng)新互聯(lián)擁有網(wǎng)站維護技術(shù)和項目管理團隊,建立的售前、實施和售后服務(wù)體系,為客戶提供定制化的成都網(wǎng)站設(shè)計、網(wǎng)站制作、網(wǎng)站維護、成都電信服務(wù)器托管解決方案。為客戶網(wǎng)站安全和日常運維提供整體管家式外包優(yōu)質(zhì)服務(wù)。我們的網(wǎng)站維護服務(wù)覆蓋集團企業(yè)、上市公司、外企網(wǎng)站、商城建設(shè)、政府網(wǎng)站等各類型客戶群體,為全球上千企業(yè)提供全方位網(wǎng)站維護、服務(wù)器維護解決方案。

枚舉類型可以理解為一組常量,這些常量具有相似性質(zhì)的預定義值。例如,在一個銀行系統(tǒng)中,可以使用枚舉類型”賬戶狀態(tài)”,預定義值包括:激活、凍結(jié)、掛失等等。這樣,可以將數(shù)據(jù)庫中的每個賬戶的狀態(tài)設(shè)置為枚舉類型,使得操作員可以更好地控制賬戶狀態(tài),并且避免一些錯誤操作。

數(shù)據(jù)庫中,通過枚舉類型將數(shù)據(jù)類型轉(zhuǎn)化為預先定義的值列表而實現(xiàn)對不同類型狀態(tài)的控制。枚舉類型的應(yīng)用范圍非常廣泛,可以用于處理許多類型的數(shù)據(jù)。例如,性別、標簽、等級、權(quán)限、類別等等,都可以使用枚舉類型定義,從而更好地控制對象狀態(tài)。

枚舉類型的優(yōu)點在于控制對象狀態(tài)的精確性。使用枚舉類型,不僅可以明確對象的不同狀態(tài),還能夠強制執(zhí)行預定義的值。相比較于其他類型的數(shù)據(jù)定義方式,枚舉類型能夠有效地提高代碼的可讀性、可維護性和穩(wěn)定性。

在數(shù)據(jù)庫中使用枚舉類型時,需要注意一些問題。需要設(shè)計一個合理的枚舉值列表,并避免增長過快或過于復雜。過于復雜的枚舉值列表會增加代碼的難度和維護成本。需要對枚舉類型進行妥善的文檔記錄和注釋,以便未來更好地維護和理解代碼。

在編寫數(shù)據(jù)庫設(shè)計方案時,為了更好地使用枚舉類型,需要考慮一些因素。例如,需要考慮每個對象狀態(tài)的可用性和有效性,以及在條件和篩選查詢中使用枚舉類型的效率等等。

數(shù)據(jù)庫枚舉類型是一種靈活、強大的工具,用于控制對象狀態(tài)。通過使用枚舉類型,可以更好地控制數(shù)據(jù),減少錯誤和維護成本,并提高軟件應(yīng)用程序的質(zhì)量。為了更好地使用枚舉類型,需要合理安排枚舉值列表,并進行良好的文檔記錄和注釋,在實際應(yīng)用中不斷優(yōu)化。

成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián)為您提供網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)頁設(shè)計及定制高端網(wǎng)站建設(shè)服務(wù)!

mysql里 enum(F,M,S)什么意思I

枚舉類型的值 有自己設(shè)定的

枚舉類型ENUM

對枚舉類型字段存儲數(shù)據(jù)的數(shù)據(jù)測試案例分享和總結(jié)文章為MySQL數(shù)據(jù)庫數(shù)據(jù)類型之枚舉類型ENUM數(shù)據(jù)測試總結(jié),對枚舉類型字段進行DDL變更操作支持的案例分享和總結(jié)文章為MySQL數(shù)據(jù)庫之枚舉數(shù)據(jù)類型ENUM的DDL變更測試,通過詳盡的測試對比過程,對MySQL枚舉類型的特點非常清晰,我們再簡要綜合地回顧枚舉類型的優(yōu)缺點:

l 優(yōu)點

1)MySQL枚舉類型的枚舉元素允許更大65535個,基本夠絕大多數(shù)衡指胡業(yè)務(wù)場景使用;

2)引入枚舉類型數(shù)咐攔據(jù)存儲,有利于縮減數(shù)據(jù)庫存儲數(shù)據(jù)的容量,尤其能達到減少數(shù)據(jù)庫瓶頸更大的物理IO,邏輯IO也能減小,提高主機的處理能力;

3)引入枚舉類型數(shù)據(jù)存儲,有利于簡化工程師的代碼復雜度、工作量,增加代碼的可讀性和可維護性;

4)可以通過枚舉類型元素值訪問數(shù)據(jù),也可以根據(jù)枚舉類型元素編號進行訪問數(shù)據(jù);

l 缺點

1)MySQL數(shù)據(jù)庫枚舉類型的引入,可能給軟件程序的版本發(fā)布,存在遺忘數(shù)據(jù)庫結(jié)構(gòu)變更的隱患;

2)MySQL數(shù)據(jù)庫枚舉類型字段的元素增加,必須以尾部追加的方式,否則影響數(shù)據(jù)庫提供數(shù)據(jù)服務(wù);

3)枚舉類型字段不再需要的元素,也不能進行刪除,否則影響數(shù)據(jù)庫提供數(shù)據(jù)服務(wù);

4)MySQL數(shù)據(jù)庫枚舉類型的字段定義屬性元素值,不能隨意調(diào)整其順序,否則影響數(shù)據(jù)庫提供數(shù)據(jù)逗孫服務(wù);

建議:

MySQL數(shù)據(jù)庫枚舉類型是一種有應(yīng)用場景廣泛的數(shù)據(jù)類型,若是拋開網(wǎng)站程序或軟件版本發(fā)布,可能會導致開發(fā)工程師與數(shù)據(jù)庫維護人員之間沒有配合好的問題,非常推薦大家把枚舉類型引入到生產(chǎn)環(huán)境的數(shù)據(jù)庫應(yīng)用中,對企業(yè)而言也可以起到節(jié)省人力、物理等成本。建議大家使用枚舉類型的時候,盡量把可能需要用到的枚舉元素,都寫到MySQL數(shù)據(jù)庫表字段的定義屬性中,減少出現(xiàn)漏做DDL變更的故障。

根據(jù)用戶定義的枚舉值與分片節(jié)點映射文件,直接定位目標分片。

用戶在rule.xml中配置枚舉值文件路徑和分片索引是字符串還是數(shù)字,DBLE在啟動時會將枚舉值文件加載到內(nèi)存中,形成一個映射表

在DBLE的運行過程中,用戶訪問使用這個算法的表時,WHERE子句中的分片索引值會被提取出來,直接查映射表得到分片編號

與MyCat的類似分片算法對比

中間件

DBLE

MyCat

分片算法種類    enum 分區(qū)算法    分片枚舉    

兩種中間件的枚舉分片算法使用上無差別。

開發(fā)注意點

【分片索引】1. 整型數(shù)字(可以為負數(shù))或字符串((不含=和換行符)

【分片索引】2. 枚舉值之間不能重復

Male=0Male=1

或者

123=1123=2

會導致分片策略加載出錯

【分片索引】3. 不同枚舉值可以映射到同一個分片上

Mr=0Mrs=1Miss=1Ms=1123=0

運維注意點

【擴容】1. 增加枚舉值無需數(shù)據(jù)再平衡

【擴容】2. 增加一個枚舉值的分片數(shù)量數(shù)時,需要對局部數(shù)據(jù)進行遷移

【縮容】1. 減少枚舉值需要御氏數(shù)據(jù)再平衡

【縮容】2. 減少一個枚舉值的分片數(shù)量數(shù)時,需要對局部數(shù)據(jù)進行遷移

配置注意點

【配置項】1. 在 rule.xml 中,可配置項為  、 和  

【配置項】2. 在 rule.xml 中配置  標簽,非必須配置項,不配置該項的話,用戶的分片索引值沒落在 mapFile 定義的范歲兄圍時,DBLE 會報錯;若需要配置,必須為非負整數(shù),用戶的分片索引值沒落在 mapFile 定義的范圍時,DBLE 會路由至這個值的 MySQL 分片

【配置項】3. 在 rule.xml 中配置  標簽,范圍映射文件的路徑:若在映射文件在 DBLE_HOME/conf 或其中,則可以使用相對路徑的形式配置,例如,映射文件是 DBLE_HOME/conf/map/table_map.txt 時,配置值就可以簡寫為 map/table_map.txt;映射文件在 DBLE_HOME/conf 目錄以外時,需要使用絕對路徑,但這種做法需要考慮用戶權(quán)限等問題,因此不建議把映射文件放在 DBLE_HOME/conf 外。

【配置項】4. 編輯 mapFile 所配置的文件

記錄格式為:=

枚舉值可以是整型數(shù)字,或任意字符(除了=和換行符),分片編號必須是非負整型數(shù)字,記錄之間以換行分隔,一行僅能有一條記錄,枚舉值不能夠是“DEFAULT_NODE”這個字符串,允許以“//”和“#”在行首來注釋該行

【配置項】5. 在 rule.xml 中配置  標簽;type 必須為整型;取值為 0 時,mapFile 的必須為整型;取值乎拆襲為非 0 時,mapFile 的可以是任意字符(除了=和換行符)

enum是枚舉類型,表示這個字段中的數(shù)據(jù)只能為F,M,S三個值中的一個

關(guān)于MYSQL 時間類型存儲在數(shù)據(jù)庫里是什么類型

Mysql中經(jīng)常用來存儲日期的數(shù)據(jù)類型有三種:Date、Datetime、Timestamp。

Date數(shù)據(jù)類型:用來存儲沒有做并返時間的日期。Mysql獲取和顯示這個類型的格式為“YYYY-MM-DD”。支持的時間范圍為“”到“”。

Datetime類型:存儲既有日期又有時間的數(shù)據(jù)。存儲和顯示的格式為 “YYYY-MM-DD HH:MM:SS”。支持的時間范圍是“:00:00”到“:59:59”。

Timestamp類型:也是存儲既有日期又有時間的數(shù)據(jù)。存儲和顯示的格式跟Datetime一樣。支持的時間范圍是“:00:01”到“:14:07”。

所有不符合上面所述蔽輪格式的數(shù)據(jù)都純饑會被轉(zhuǎn)換為相應(yīng)類型的0值。(或者:00:00)

MySQL 數(shù)據(jù)類型細分下來,大概有以下幾類:

數(shù)值,典型代表為 tinyint,int,bigint

浮點/定點,典型代表為 float,double,decimal 以及相關(guān)的同義詞

字符串,典型代表為 char,varchar

時間日期,典型代表為 date,datetime,time,timestamp

二進制,典型代表為 binary,varbinary

位類型

枚舉類型

類型

大對象,比如 text,blob

json 文檔類型

一、數(shù)值類型(不是數(shù)據(jù)類型,別看錯了)如果用來存放整數(shù),根據(jù)范圍的不同,選擇不同的類型。

以上是幾個整數(shù)選激塵野型的例子。整數(shù)的應(yīng)用范圍最廣泛,可以用來存明喊儲數(shù)字,也可以用來存儲時間戳,還可以用來存儲其他類型轉(zhuǎn)換為數(shù)字后的編碼,如 IPv4 等。示例 1用 int32 來存放 IPv4 地址,比單純用字符串節(jié)省空間。表 x1,字段 ipaddr,利用函數(shù) inet_aton,檢索的話用函數(shù) inet_ntoa。

查看磁盤空間占用,t3 占用更大,t1 占用最小。所以說如果整數(shù)存儲范圍有固定上限,并且未來也沒有必要擴容的話,建議選擇最小的類型,當然了對其他類型也適用。root@ytt-pc:/var/lib/mysql/3305/ytt# ls -sihl總用量 3.0GM -rw-rmysql mysql 860M 12月 10 11:36 t1.ibdM -rw-rmysql mysql 988M 12月 10 11:38 t2.ibd.2G -rw-rmysql mysql 1.2G 12月 10 11:39 t3.ibd

二、浮點數(shù) / 定點數(shù)先說 浮點數(shù),float 和 double 都代表浮點數(shù),區(qū)別簡單記就是 float 默認占 4 Byte。float(p) 中的 p 代表整數(shù)位最小精度。如果 p > 24 則直接轉(zhuǎn)換為 double,占 8 Byte。p 更大值為 53,但更大值存在計算不精確的問題。再說 定點數(shù),包括 decimal 以及同兄亮義詞 numeric,定點數(shù)的整數(shù)位和小數(shù)位分別存儲,有效精度更大不能超過 65。所以區(qū)別于 float 的在于精確存儲,必須需要精確存儲或者精確計算的更好定義為 decimal 即可。示例 3創(chuàng)建一張表 y1,分別給字段 f1,f2,f3 不同的類型。mysql-(ytt/3305)->create table y1(f1 float,f2 double,f3 decimal(10,2));Query OK, 0 rows affected (0.03 sec)

三、字符類型字符類型和整形一樣,用途也很廣。用來存儲字符、字符串、MySQL 所有未知的類型??梢院唵握f是萬能類型!

char(10) 代表更大支持 10 個字符存儲,varhar(10) 雖然和 char(10) 可存儲的字符數(shù)一樣多,不同的是 varchar 類型存儲的是實際大小,char 存儲的理論固定大小。具體的字節(jié)數(shù)和字符集相關(guān)。示例 4例如下面表 t4 ,兩個字段 c1,c2,分別為 char 和 varchar。mysql-(ytt/3305)->create table t4 (c1 char(20),c2 varchar(20));Query OK, 0 rows affected (0.02 sec)

所以在 char 和 varchar 選型上,要注意看是否合適的取值范圍。比如固定長度的值,肯定要選擇 char;不確定的值,則選擇 varchar。

四、日期類型日期類型包含了 date,time,datetime,timestamp,以及 year。year 占 1 Byte,date 占 3 Byte?!?/p>

time,timestamp,datetime 在不包含小數(shù)位時分別占用 3 Byte,4 Byte,8 Byte;小數(shù)位部分另外計算磁盤占用,見下面表格。

請點擊輸入圖片描述

請點擊輸入圖片描述

請點擊輸入圖片描述

注意:timestamp 代表的時間戳是一個 int32 存儲的整數(shù),取值范圍為 ‘:00:01.000000’ 到 ‘:14:07.999999’;datetime 取值范圍為 ‘:00:00.000000’ 到 ‘:59:59.999999’。 

綜上所述,日期這塊類型的選擇遵循以下原則:

1. 如果時間有可能超過時間戳范圍,優(yōu)先選擇 datetime。2. 如果需要單獨獲取年份值,比如按照年來分區(qū),按照年來檢索等,更好在表中添加一個 year 類型來參與。3. 如果需要單獨獲取日期或者時間,更好是單獨存放,而不是簡單的用 datetime 或者 timestamp。后面檢索時,再加函數(shù)過濾,以免后期增加 SQL 編寫帶來額外消耗。

4. 如果有保存毫秒類似的需求,更好是用時間類型自己的特性,不要直接用字符類型來代替。MySQL 內(nèi)部的類型轉(zhuǎn)換對資源額外的消耗也是需要考慮的。

示例 5

建立表 t5,對這些可能需要的字段全部分離開,這樣以后寫 SQL 語句的時候就很容易了。

當然了,這種情形占用額外的磁盤空間。如果想在易用性與空間占用量大這兩點來折中,可以用 MySQL 的虛擬列來實時計算。比如假設(shè) c5 字段不存在,想要得到 c5 的結(jié)果。mysql-(ytt/3305)->alter table t5 drop c5, add c5 year generated always as (year(c1)) virtual;Query OK, 1 row affected (2.46 sec)Records: 1  Duplicates: 0  Warnings: 0

五、二進制類型

binary 和 varbinary 對應(yīng)了 char 和 varchar 的二進制存儲,相關(guān)的特性都一樣。不同的有以下幾點:

binary(10)/varbinary(10) 代表的不是字符個數(shù),而是字節(jié)數(shù)。

行結(jié)束符不一樣。char 的行結(jié)束符是 \0,binary 的行結(jié)束符是 0x00。

由于是二進制存儲,所以字符編碼以及排序規(guī)則這類就直接無效了。

示例 6

來看這個 binary 存取的簡單示例,還是之前的變量 @a。

切記!這里要提前計算好 @a 占用的字節(jié)數(shù),以防存儲溢出。

六、位類型

bit 為 MySQL 里存儲比特位的類型,更大支持 64 比特位, 直接以二進制方式存儲,一般用來存儲狀態(tài)類的信息。比如,性別,真假等。具有以下特性:

1. 對于 bit(8) 如果單純存放 1 位,左邊以 0 填充。2. 查詢時可以直接十進制來過濾數(shù)據(jù)。3. 如果此字段加上索引,MySQL 不會自己做類型轉(zhuǎn)換,只能用二進制來過濾。

示例 7

創(chuàng)建表 c1, 字段性別定義一個比特位。mysql-(ytt/3305)->create table c1(gender bit(1));Query OK, 0 rows affected (0.02 sec)

mysql-(ytt/3305)->select cast(gender as unsigned)  ‘f1’ from c1;+——+| f1   |+——+|    0 ||    1 |+——+2 rows in set (0.00 sec)

過濾數(shù)據(jù)也一樣,二進制或者直接十進制都行。mysql-(ytt/3305)->select conv(gender,16,10) as gender \   -> from c1 where gender = b’1′; ++| gender |++||++1 row in set (0.00 sec)    mysql-(ytt/3305)->select conv(gender,16,10) as gender \    -> from c1 where gender = ‘1’;++| gender |++||++1 row in set (0.00 sec)

其實這樣的場景,也可以定義為 char(0),這也是類似于 bit 非常優(yōu)化的一種用法。

mysql-(ytt/3305)->create table c2(gender char(0));Query OK, 0 rows affected (0.03 sec)

那現(xiàn)在我給表 c1 簡單的造點測試數(shù)據(jù)。

mysql-(ytt/3305)->select count(*) from c1;++| count(*) |++||++1 row in set (1.37 sec)

把 c1 的數(shù)據(jù)全部插入 c2。

mysql-(ytt/3305)->insert into c2 select if(gender = 0,”,null) from c1;Query OK,rows affected (2 min 18.80 sec)Records:Duplicates: 0  Warnings: 0

兩張表的磁盤占用差不多。root@ytt-pc:/var/lib/mysql/3305/ytt# ls -sihl總用量 1.9GM -rw-rmysql mysql 932M 12月 11 10:16 c1.ibdM -rw-rmysql mysql 916M 12月 11 10:22 c2.ibd

檢索方式稍微有些不同,不過效率也差不多。所以說,字符類型不愧為萬能類型。

七、枚舉類型

枚舉類型,也即 enum。適合提前規(guī)劃好了所有已經(jīng)知道的值,且未來更好不要加新值的情形。枚舉類型有以下特性:

1. 更大占用 2 Byte。2. 更大支持個不同元素。3. MySQL 后臺存儲以下標的方式,也就是 tinyint 或者 allint 的方式,下標從 1 開始。4. 排序時按照下標排序,而不是按照里面元素的數(shù)據(jù)類型。所以這點要格外注意。

示例 8

創(chuàng)建表 t7。mysql-(ytt/3305)->create table t7(c1 enum(‘mysql’,’oracle’,’dble’,’postgresql’,’mongodb’,’redis’,’db2′,’sql server’));Query OK, 0 rows affected (0.03 sec)

八、類型

類型 SET 和枚舉類似,也是得提前知道有多少個元素。SET 有以下特點:

1. 更大占用 8 Byte,int64。2. 內(nèi)部以二進制位的方式存儲,對應(yīng)的下標如果以十進制來看,就分別為 1,2,4,8,…,pow(2,63)。3. 更大支持 64 個不同的元素,重復元素的插入,取出來直接去重。4. 元素之間可以組合插入,比如下標為 1 和 2 的可以一起插入,直接插入 3 即可。

示例 9

定義表 c7 字段 c1 為 set 類型,包含了 8 個值,也就是下表更大為 pow(2,7)。

mysql-(ytt/3305)->create table c7(c1 set(‘mysql’,’oracle’,’dble’,’postgresql’,’mongodb’,’redis’,’db2′,’sql server’));Query OK, 0 rows affected (0.02 sec)

插入 1 到 128 的所有組合。

mysql-(ytt/3305)->INSERT INTO c7WITH RECURSIVE ytt_number (cnt) AS (SELECT 1 AS cntUNION ALLSELECT cnt +FROM ytt_numberWHERE cnt select ytt_sample_data_type(1111,222) ‘result’;++| result     |++| The result is: ‘246642’. |++1 row in set (0.00 sec)

總結(jié)

本篇把 MySQL 基本的數(shù)據(jù)類型做了簡單的介紹,并且用了一些容易理解的示例來梳理這些類型。我們在實際場景中,建議選擇適合最合適的類型,不建議所有數(shù)據(jù)類型簡單的更大化原則。比如能用 varchar(100),不用 varchar(1000)。

數(shù)據(jù)庫枚舉類型 對象的介紹就聊到這里吧,感謝你花時間閱讀本站內(nèi)容,更多關(guān)于數(shù)據(jù)庫枚舉類型 對象,數(shù)據(jù)庫枚舉類型:精準控制對象狀態(tài),mysql里 enum(F,M,S)什么意思I,關(guān)于MYSQL 時間類型存儲在數(shù)據(jù)庫里是什么類型的信息別忘了在本站進行查找喔。

創(chuàng)新互聯(lián)-老牌IDC、云計算及IT信息化服務(wù)領(lǐng)域的服務(wù)供應(yīng)商,業(yè)務(wù)涵蓋IDC(互聯(lián)網(wǎng)數(shù)據(jù)中心)服務(wù)、云計算服務(wù)、IT信息化、AI算力租賃平臺(智算云),軟件開發(fā),網(wǎng)站建設(shè),咨詢熱線:028-86922220


本文名稱:數(shù)據(jù)庫枚舉類型:精準控制對象狀態(tài)(數(shù)據(jù)庫枚舉類型對象)
標題鏈接:http://www.5511xx.com/article/cdeihid.html