mysql優化 int型別解析及其優化

2021-07-10 19:23:59 字數 1096 閱讀 8817

大家都知道mysql的資料型別非常多,但是在設計資料表的時候,要想有不錯的效能,請注意一下幾點:

1:資料型別越小越好:例如:如果只存0-200的整數  建議使用:tinyint unsinged 更好

更小的資料型別占用的占用的更少的磁碟,快取,cpu,並且處理資料時使用cpu的週期也更少

3:盡量少使用null mysql處理null欄位很複雜,比較的時候,如果這個欄位有索引,會耗時

下面說一下int欄位的優化:

int 有: tinyint                   1個位元組         儲存範圍   -128到127                      unsigned     0-255

smallint                 2個位元組         儲存範圍   -32,768 到 32,767          unsigned    0-65535

mediumint            3個位元組         儲存範圍   -8388608到8388607     unsigned    0-16777215    

int                           4個位元組         儲存範圍   -2,147,483,648到 2,147,483,647                    unsigned  0到4294967295

biginr                     8個位元組         儲存範圍   -9223372036854775808到9223372036854775807   unsigned  0-18446744073709551615

優化注意事項:

1:int(3) =int(10)    int(n) 對資料儲存的大小沒有限制 ,限制儲存範圍的為資料型別 n:左右只是在你設定字段填充0的時候 不足n的位數的時候填充0

2:int(3) > tiny(3)    int(3)在儲存的時候占用磁碟要比 tinyint(3)要大 能選擇tinyint 不選則samllint

3:可以用字段的unsigned提公升存值範圍,無符號和有有符號 使用相同的空間,有相同的效能。

4:如果乙個欄位中只有幾個固定的整數 盡量使用列舉 不用 整數型別

mysql中int型別的寬度M解析

一直以來在mysql建表的時候都有乙個困惑,那就是關於int型別。int m 這個m代表什麼?比如我定義乙個文章的主鍵news id為int 8 為什麼要定義為8?如果我儲存乙個位數為10的數3445667788,發現實際也是可以儲存的。於是檢視mysql的手冊,發現有這樣一段話 m指示最大顯示寬度...

DNS解析及優化

前面的話 我們都知道tcp ip中使用的是套接字 ip位址與埠號 來進行tcp連線,那為什麼不使用網域名稱來直接通訊呢?原因有以下兩點 hosts檔案 在說dns之前,必須提乙個hosts檔案。hosts檔案作用 網域名稱和ip的對應關係儲存在乙個叫hosts檔案中。最初,通過網際網路資訊中心來管理...

mysql欄位型別解析 MySQL欄位型別最全解析

前言 要了解乙個資料庫,我們必須了解其支援的資料型別。mysql 支援大量的字段型別,其中常用的也有很多。前面文章我們也講過 int 及 varchar 型別的用法,但一直沒有全面講過字段型別,本篇文章我們將把字段型別一網打盡,講一講常用字段型別的用法。常用的字段型別大致可以分為數值型別 字串型別 ...