我使用OCI-LOB::import
将文件存储到数据库中。
memory_limit
设置,会发生什么? OCI-LOB::import
是否会通过较小的块进行流式传输并将文件数据发送到数据库?答案 0 :(得分:1)
1)当您将大数据写入lob时,您不必担心php的memory_limit
2)您可以使用OCI-Lob::write
函数
$chunkSize = 1024;
$f = fopen ($filename, 'r');
while ($buf = fread($f, $chunkSize))
{
$lob->write($buf);
}
答案 1 :(得分:0)
从PHP 5.3.18中检查oci8_lob.c
源后发现
OCI-LOB::import
读取文件数据并使用固定大小的缓冲区写入LOB描述符。缓冲区长度设置为8192字节,并在源代码中进行硬编码。这意味着,OCI-LOB::import
使用8K大小的块将数据发送到数据库。OCI-LOB::import
使用的块大小,因为它在源代码中是硬编码的。