0

这可能是常识,但只是想确定一下。

正如手册所说,SQLite 理论上可以满足每天 1,000,000 次点击。现在,如果我只使用 SQLite 来读取数据,并且如果我制作 3 个数据库文件的副本(例如),然后随机读取这些副本,理论上它将性能提高到 3,000,000 次点击,还是因为它使用了相同的库/代码?

例子:

$choices[1] = 'db1.db';
$choices[2] = 'db2.db';
$choices[3] = 'db3.db';

$random = rand(1, 3);
$db_file = $choices[$random];

$db->read($db_file);
4

1 回答 1

0

我希望它会使您的性能更差,而不是更好,因为您会对文件系统缓存施加更大的压力。

事实上,它可能比只有三分之一的速度差得多。考虑这样一种情况,您的数据库与可用 RAM 的大小大致相同,并且每个查询都需要扫描整个数据库。如果您只有一个副本,则查询的成本是扫描所有内存的时间。如果您有三个副本并随机选择使用哪个副本,则查询的平均成本可能高达从磁盘读取整个数据库时间的三分之二(取决于访问模式和缓存的驱逐策略)。而且磁盘比内存慢很多数量级。

另请参阅thrashing

于 2012-09-16T22:06:11.933 回答