【发布时间】:2011-10-17 09:47:28
【问题描述】:
我有一个 SQlite3 表,其中包含如下示例中的无类型列:
CREATE TABLE foo(
Timestamp INT NOT NULL,
SensorID,
Value,
PRIMARY KEY(Timestamp, SensorID)
);
我有特定的理由不声明SensorID 和Value 列的类型。
当插入具有 numeric SensorID 和 Value 列的行时,我注意到它们以 纯文本 的形式写入 .db 文件中。
当我将CREATE TABLE 语句更改为...
CREATE TABLE foo(
Timestamp INT NOT NULL,
SensorID INT,
Value REAL,
PRIMARY KEY(Timestamp, SensorID)
);
...然后这些值似乎以某种二进制格式写入 .db 文件。
由于我需要将数百万行写入数据库,我担心这些数据产生的文件大小,因此希望避免以纯文本形式存储值。
我可以强制 SQLite 在其数据库文件中使用二进制表示而不使用显式类型的列吗?
注意:行目前是使用 PHP::PDO 使用准备好的语句编写的。
【问题讨论】: