我正在读某处,建议使用BLOB字段类型而不是CHAR来在PHP中存储序列化对象。这是真的吗?为什么呢?
答案 0 :(得分:2)
1)会话数据是根据PHP定义的一组规则构建的,因此对DBMS不透明
2)(正如Fluffeh暗示的那样)CHAR字段用于保存小块数据,并且通常具有其大小的上限。数据将被截断
3)即使任何限制大于会话的已知最大大小,CHAR字段也具有恒定的占用空间,无论其所包含的数据量如何(与VARCHAR字段不同),因此您将浪费空间在磁盘和内存中
4)存储在CHAR(和VARCHAR)字段中的数据表示可以在插入和检索时由DBMS更改(通常是字符集的更改)
5)PHP字符串可以包含二进制数据(包括空值)逃避数据的PHP方法可能被DBMS误解释(另见1)