为什么使用blob字段为php序列化对象

时间:2014-04-09 12:07:36

标签: php mysql

我正在读某处,建议使用BLOB字段类型而不是CHAR来在PHP中存储序列化对象。这是真的吗?为什么呢?

1 个答案:

答案 0 :(得分:2)

1)会话数据是根据PHP定义的一组规则构建的,因此对DBMS不透明

2)(正如Fluffeh暗示的那样)CHAR字段用于保存小块数据,并且通常具有其大小的上限。数据将被截断

3)即使任何限制大于会话的已知最大大小,CHAR字段也具有恒定的占用空间,无论其所包含的数据量如何(与VARCHAR字段不同),因此您将浪费空间在磁盘和内存中

4)存储在CHAR(和VARCHAR)字段中的数据表示可以在插入和检索时由DBMS更改(通常是字符集的更改)

5)PHP字符串可以包含二进制数据(包括空值)逃避数据的PHP方法可能被DBMS误解释(另见1)