作者shadowjohn (转角遇到爱)
看板Database
标题Re: [SQL ] SQLite储存Base64 String建议的资料型别
时间Wed Dec 20 16:42:23 2017
※ 引述《james999 (无伤大雅)》之铭言:
: 资料库名称:SQLite3
: 内容/问题描述:
: 本来是用SQL Server当资料库,但最近想换成SQLite就好,
: 其中Base64 String(Image)原先在SQL Server内资料型别是设成varchar(MAX),
: 不晓得在SQLite里面建议存成什麽格式好?
: 谢谢大家:)
帮你试了一下 SQlite 的 text 形态
试塞了 512MB 的资料,似乎是没什麽问题
1024MB 最後没有写入成功,应该是超过他的最大值了
以下是简单512mb的测试,多写了一个读写档案来确定资料大小给你参考
<?php
ini_set('memory_limit',-1);
$pdo = new PDO('sqlite:a.sqlite');
// $sql = "create table a(id integer,b text);";
// $sth = $pdo->prepare($sql);
// $sth->execute();
//
$fp = fopen('a.txt','w');
for($i=0;$i<512;$i++)
{
fwrite($fp,str_repeat('a',1024*1024));
}
fclose($fp);
$sql = "insert into a(`id`,`b`)values('1',?);";
$sth = $pdo->prepare($sql);
$sth->execute(array(file_get_contents('a.txt')));
//$pdo->close();
[root@3wa sqlite]# ls -lht
总计 1.4G
-rw-r--r-- 1 root root 900M 12月 20 16:36 a.sqlite
-rw-r--r-- 1 root root 512M 12月 20 16:34 a.txt
-rw-r--r-- 1 root root 450 12月 20 16:34 a.php
[root@3wa sqlite]#
900M 是因为测试 1MB 256mb xxmb 512mb ... 加一加就900
如果你是要用 base64 明码存,text 应该是够了,图片?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.134.48.253
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Database/M.1513759346.A.4DC.html