mysql抑音符 MySQL 資料型別

2021-10-17 21:43:57 字數 1249 閱讀 1124

mysql中定義資料欄位的型別對你資料庫的優化是非常重要的。

mysql支援多種型別,大致可以分為三類:數值、日期/時間和字串(字元)型別。

數值型別:

日期和時間型別:

字串型別:

mysql中char、varchar和text三者的區別

在mysql中,char、varchar和text型別的字段都可以用來儲存字元型別的資料,char、varchar都可以指定最大的字元長度,但text不可以。

它們的儲存方式和資料的檢索方式也都不一樣。

資料的檢索效率是:char >varchar >text

具體說明:

char:儲存定長資料很方便,char欄位上的索引效率級高,必須在括號裡定義長度,可以有預設值,比如定義char(10),那麼不論你儲存的資料是否達到了10個位元組,都要占去10個位元組的空間(自動用空格填充),且在檢索的時候後面的空格會隱藏掉,所以檢索出來的資料需要記得用什麼trim之類的函式去過濾空格。

varchar:儲存變長資料,但儲存效率沒有char高,必須在括號裡定義長度,可以有預設值。儲存資料的時候,不進行空格自動填充,而且如果資料存在空格時,當值儲存和檢索時尾部的空格仍會保留。另外,varchar型別的實際長度是它的值的實際長度+1,這乙個位元組用於儲存實際使用了多大的長度。

text:儲存可變長度的非unicode資料,最大長度為2^31-1個字元。text列不能有預設值,儲存或檢索過程中,不存在大小寫轉換,後面如果指定長度,不會報錯誤,但是這個長度是不起作用的,意思就是你插入資料的時候,超過你指定的長度還是可以正常插入。

關於儲存空間:

在使用utf8字符集的時候,mysql手冊上是這樣描述的:

基本拉丁字母、數字和標點符號使用乙個位元組;

大多數的歐洲和中東手寫字母適合兩個位元組序列:擴充套件的拉丁字母(包括發音符號、長音符號、重音符號、低音符號和其它音符)、西里爾字母、希臘語、亞美尼亞語、希伯來語、阿拉伯語、敘利亞語和其它語言;

韓語、中文和日本象形文本使用三個位元組序列。

結論:1、經常變化的字段用varchar;

2、知道固定長度的用char;

3、超過255位元組的只能用varchar或者text;

4、能用varchar的地方不用text;

5、能夠用數字型別的字段盡量選擇數字型別而不用字串型別,這會降低查詢和連線的效能,並會增加儲存開銷。這是因為引擎在處理查詢和連線回逐個比較字串中每乙個字元,而對於數字型而言只需要比較一次就夠了;

6、同一張表出現多個大字段,能合併時盡量合併,不能合併時考慮分表

重音符accent 符號在mysql中的作用

重音符accent 符號在mysql中的作用 是 mysql 的轉義符,避免和 mysql 的本身的關鍵字衝突,只要你不在列名 表名中使用 mysql 的保留字或中文,就不需要轉義。所有的資料庫都有類似的設定,不過mysql用的是 而已。通常用來說明其中的內容是資料庫名 表名 欄位名,不是關鍵字。例...

mysql資料儲存 mysql資料儲存

頁 從磁碟讀取或者寫入資料時,我們通常會指定乙個緩衝區大小,達到緩衝區域大小才會寫入一次資料,較少io操作次數。同樣的從磁碟讀取資料時候,就作業系統而言,讀取一條較小的資料時,並不是只會返回我們需要的資料,而是會將這個資料前後的部分資料一併讀取到記憶體中,以備之後使用。這個從磁碟讀取的最小量的資料被...

mysql過濾資料 MySQL過濾資料

1.mysql過濾資料 使用where子句 select prod name,prod price from products where prod price 2.50 檢查單個值 select prod name,prod price from products where prod name ...