想用 SQLite3 来做保存访问日志,但是有些问题如下:
根据这个( http://www.php.net/manual/zh/sqlite3.open.php )官方的说明是提供设置数据库密码的,但是在实际测试中发现,
class MyDB extends SQLite3
{
function __construct ()
{
$this->open ('mysqlitedb.db', SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE , '123456789');
}
}
数据库根本就没有被设置密码,请问怎么才能设置数据库密码?
如果要改数据库密码,怎么去修改?
最后一个问题是,看介绍说 SQLite3 支持多线程的,但是只能一个线程写入数据库,这应该怎么做才能在大量数据要写入的情况下,怎么才可以高效快速完成呢?
1
cxbig 2015 年 9 月 3 日
SQLite3 这种轻量级的 DB 要啥安全配置。。。
要是讲究安全性请考虑 MySQL 、 MariaDB 、 PostgreSQL |
2
abelyao 2015 年 9 月 3 日 via iPhone
大量数据写入的真心不要选择 SQLite 啊啊啊…
|
3
unity0703 2015 年 9 月 3 日
免费版 SQLite 不支持加密,你可以自己对整个数据库文件加密,读的时候再自己解密
|
4
mathgl 2015 年 9 月 3 日
sqlite3 不需要密码。
如果是高并发写入,不要用 sqlite3 |
6
neoblackcap 2015 年 9 月 3 日
@CNCCTV 日志按道理不是上专门的日志服务器就好了吗?我们正在使用 logentries 的日志服务,感觉不错,而且还提供了 S3 的自动存档服务
|
7
mathgl 2015 年 9 月 3 日
|
8
zhuangzhuang1988 2015 年 9 月 3 日
第一个:
官方说明了 "If the build includes encryption, then it will attempt to use the key.", (PHP 5 >= 5.3.0 ) 看看是不是不符合. 第二个: 换掉 sqlite3. |
9
master 2015 年 9 月 3 日
记录日志这样的高并发写行为, I/O 操作本身要尽可能简单才是。
轻的日志基于文本,重的基于日志服务器。 如果说担心文件体量问题,认为 mysql 不合适,那 sqlite 就更不合适了, sqlite 还加密,那完全就是本末倒置了。 |
10
realpg PRO MYSQL 都不合适 SQLITE 能合适……
|
11
CNCCTV OP @zhuangzhuang1988 我的 php 是 5.6.9,怎么换掉 sqlite3 ?
|
13
Khlieb 2015 年 9 月 4 日 via Android
|
18
abelyao 2015 年 9 月 4 日
@CNCCTV
日志的记录,除了时刻的记录之外,还需要考虑索引、日后查看等功能,如果你单独按照日期去划分,那如果我想看某个时间段内、 IP 地址为 XXX 的访问记录,多文件的日志、或者 JSON 格式,检索性能能否满足你? 相对的,日志这东西需要你切合实际的访问量、写入量、查看频率、对查看的效率要求,来选一种最合适的,如果你说你每天写入几千条记录,但检索频率高,我不认为文件存储会是一个好办法;如果你说每天写入 100W 条记录、几个月才检索一次,那显然放数据库的话、数据库压力也大。 当你写入量也达到高要求了、检索也达到高需求了,就乖乖考虑日志服务器吧,或者专门的第三方日志服务。说白了,根据实际需求决定,脱离实际的“伪需求”都只是空谈。 |
20
ljbha007 2015 年 9 月 4 日
@CNCCTV sqlite 也有加密的第三方库 但是一个是商用要收费 一个是会增加 CPU 负担
https://www.zetetic.net/sqlcipher/ https://www.sqlite.org/see/doc/trunk/www/index.wiki 其中 sqlicipher 有 php 支持 微信就是用的这个的 C++版本 https://www.zetetic.net/sqlcipher/documentation/ see 没用过不知道 |