MySQL將數據存儲為一系列的數據塊(block),每個數據塊包含一定數量的行(records),而每行又由多個列(columns)組成。MySQL確定一條記錄的長度,主要由以下兩部分組成:
1. 固定長度部分 每個數據類型在MySQL中都有一個固定的長度: 例如,TINYINT類型就是1個字節,而DOUBLE類型則是8個字節。 如果列采用了定長類型(如CHAR),則該字段就是固定長度,其長度就是CHAR(x)中的x;如果使用了變長類型(如VARCHAR),則除了保存實際數據外,還需要附加一些控制信息以及長度標識,這個長度信息就是變長字段的固定長度部分。 2. 可變長度部分 如果每個記錄的長度都固定,那么存儲數據時,會出現很多浪費存儲空間的情況,因此MySQL提供了可變長度數據類型,例如VARCHAR、TEXT、BLOB等等。這些類型的存儲空間可以根據實際數據的長度進行擴展和收縮,因此可變長度數據類型在MySQL中通常存儲長度信息,作為該字段所占的變長部分。舉個例子,如果要存儲一個VARCHAR(20)的數據類型,字段實際只使用了10個字節存儲內容,則其實際占用的存儲空間就是10字節,再加上變長部分的長度信息,這樣就可以根據實際存儲數據的長度來確定記錄的長度。
總體來說,MySQL支持的數據類型很多,而且適用于不同的場景,因此了解每個數據類型所占用的空間以及其本身的特點,可以幫助我們更好地設計和管理數據庫。
下一篇mysql一條數據容量