想用 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-09-03 06:36:42 +08:00
SQLite3 这种轻量级的 DB 要啥安全配置。。。
要是讲究安全性请考虑 MySQL 、 MariaDB 、 PostgreSQL |
2
abelyao 2015-09-03 07:55:47 +08:00 via iPhone
大量数据写入的真心不要选择 SQLite 啊啊啊…
|
3
unity0703 2015-09-03 11:55:32 +08:00
免费版 SQLite 不支持加密,你可以自己对整个数据库文件加密,读的时候再自己解密
|
4
mathgl 2015-09-03 11:59:26 +08:00
sqlite3 不需要密码。
如果是高并发写入,不要用 sqlite3 |
5
CNCCTV OP @mathgl 那用什么来做好呢?日志记录,是长期记录的,主要是用来做统计数据用的,时间长了,内容量就相当大了,不可能用 MySQL 来做吧?
|
6
neoblackcap 2015-09-03 14:30:11 +08:00
@CNCCTV 日志按道理不是上专门的日志服务器就好了吗?我们正在使用 logentries 的日志服务,感觉不错,而且还提供了 S3 的自动存档服务
|
7
mathgl 2015-09-03 14:32:20 +08:00
|
8
zhuangzhuang1988 2015-09-03 15:01:10 +08:00
第一个:
官方说明了 "If the build includes encryption, then it will attempt to use the key.", (PHP 5 >= 5.3.0 ) 看看是不是不符合. 第二个: 换掉 sqlite3. |
9
master 2015-09-03 15:09:42 +08:00
记录日志这样的高并发写行为, I/O 操作本身要尽可能简单才是。
轻的日志基于文本,重的基于日志服务器。 如果说担心文件体量问题,认为 mysql 不合适,那 sqlite 就更不合适了, sqlite 还加密,那完全就是本末倒置了。 |
10
realpg 2015-09-03 17:59:14 +08:00
MYSQL 都不合适 SQLITE 能合适……
|
11
CNCCTV OP @zhuangzhuang1988 我的 php 是 5.6.9,怎么换掉 sqlite3 ?
|
13
Khlieb 2015-09-04 01:19:21 +08:00 via Android
|
15
CNCCTV OP @abelyao 不是所有日志都写在一个 db 的,是分类和按日期的单独的 db ,至于什么要用密码,是因为不希望被别人可以随便查看。
|
18
abelyao 2015-09-04 01:54:26 +08:00
@CNCCTV
日志的记录,除了时刻的记录之外,还需要考虑索引、日后查看等功能,如果你单独按照日期去划分,那如果我想看某个时间段内、 IP 地址为 XXX 的访问记录,多文件的日志、或者 JSON 格式,检索性能能否满足你? 相对的,日志这东西需要你切合实际的访问量、写入量、查看频率、对查看的效率要求,来选一种最合适的,如果你说你每天写入几千条记录,但检索频率高,我不认为文件存储会是一个好办法;如果你说每天写入 100W 条记录、几个月才检索一次,那显然放数据库的话、数据库压力也大。 当你写入量也达到高要求了、检索也达到高需求了,就乖乖考虑日志服务器吧,或者专门的第三方日志服务。说白了,根据实际需求决定,脱离实际的“伪需求”都只是空谈。 |
20
ljbha007 2015-09-04 08:47:17 +08:00
@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 没用过不知道 |