结论
- 使用char是最好的,因为MD5是固定长度,而char也正是保存固定长度类型。
为什么固定长度用char保存更好?
- 首先char是固定长度的,比如char(10)保存10个字符,那么当保存abc这3个字符时,char依然会占用10个字符空间,剩下7个是空字符。而varchar(10)就只会占用3个字符。
- char是固定长度,varchar是可变长度,即varchar具体长度要根据实际存储的内容而定
- 无论是char还是varchar都会格外占一个字符为去保存数据的长度,当数据<255时,保存长度占1个字符,当 > 255时,则要使用2个字符空间保存数据长度
- 从性能角度看:当更新内容时,由于char是固定长度,所以无需计算数据长度,性能更高。 而varchar需要重新计算数据长度,然后会更新记录的长度,所以性能不如char
- 从空间角度看:char不管存的数据长度是多少,他都是固定的,哪怕存个abc到char(10), 不足10个字符,则也会用空字符占位凑到10个字符。而varchar他只会占用3个字符。因此从空间角度,varchar通常更节省空间,但他需要牺牲时间去计算数据长度。