mysql innodb 下ENUM存儲格式分析。

幾天羣裏面說了ENUM這個類型,順便看看這個類型的數據在數據庫裏面是不是按照int類型存放的。

相關資料可以看看《mysql技術內幕innodb存儲引擎》第一版或者第二版

第二版103頁compact記錄格式。下面是我的測試。

表結構:

mysql> desc enum_t;

+-------+---------------------------+------+-----+---------+-------+

| Field | Type                      | Null | Key | Default | Extra |

+-------+---------------------------+------+-----+---------+-------+

| a     | enum('A','B','C','D','E') | YES  |     | NULL    |       |

| b     | char(10)                  | YES  |     | NULL    |       |

+-------+---------------------------+------+-----+---------+-------+

2 rows in set (0.11 sec)

數據:

mysql> select * from enum_t;

+------+------+

| a    | b    |

+------+------+

| A    | B    |

| B    | C    |

| C    | D    |

| D    | E    |

| A    | F    |

| B    | G    |

+------+------+

6 rows in set (0.00 sec)

二進制:

0000c070  73 75 70 72 65 6d 75 6d  00 00 00 10 00 24 00 00  |supremum.....$..|

0000c080  00 00 81 14 00 00 00 00  63 be 93 00 00 01 40 01  |........c.....@.|

0000c090  10 01 42 20 20 20 20 20  20 20 20 20 00 00 00 18  |..B         ....|

0000c0a0  00 24 00 00 00 00 81 15  00 00 00 00 63 bf 94 00  |.$..........c...|

0000c0b0  00 01 c9 01 10 02 43 20  20 20 20 20 20 20 20 20  |......C         |

0000c0c0  00 00 00 20 00 24 00 00  00 00 81 16 00 00 00 00  |... .$..........|

0000c0d0  63 cc 9d 00 00 01 80 01  10 03 44 20 20 20 20 20  |c.........D     |

0000c0e0  20 20 20 20 00 00 00 28  00 24 00 00 00 00 81 17  |    ...(.$......|

0000c0f0  00 00 00 00 63 cd 9e 00  00 01 e2 01 10 04 45 20  |....c.........E |

0000c100  20 20 20 20 20 20 20 20  00 00 00 30 00 24 00 00  |        ...0.$..|

0000c110  00 00 81 18 00 00 00 00  63 da a7 00 00 01 cc 01  |........c.......|

0000c120  10 01 46 20 20 20 20 20  20 20 20 20 00 00 00 38  |..F         ...8|

0000c130  ff 3e 00 00 00 00 81 19  00 00 00 00 63 db a8 00  |.>..........c...|

0000c140  00 01 cd 01 10 02 47 20  20 20 20 20 20 20 20 20  |......G         |

0000c150  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|


可見這個真的是存儲了1,2,3,4.



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章