Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用命令行工具sqlite3浏览内存中的SQLite数据库_Sqlite_In Memory Database - Fatal编程技术网

如何使用命令行工具sqlite3浏览内存中的SQLite数据库

如何使用命令行工具sqlite3浏览内存中的SQLite数据库,sqlite,in-memory-database,Sqlite,In Memory Database,有没有办法使用sqlite3 CLI工具将整个SQLite数据库加载到内存中以获得更快的结果?谢谢 我不确定你想在这里完成什么,但我有两个想法要提出: 1-将数据库中的所有内容复制到内存中的某个附加数据库。此链接将告诉您如何连接内存中的数据库: 2-增加缓存大小,将事务保留在内存中,并将“临时存储”保留在内存中: 提供了一个很好的例子,即: sqlite> attach database ':memory:' as mydb; sqlite> .schema CREATE TABLE

有没有办法使用sqlite3 CLI工具将整个SQLite数据库加载到内存中以获得更快的结果?谢谢

我不确定你想在这里完成什么,但我有两个想法要提出:

1-将数据库中的所有内容复制到内存中的某个附加数据库。此链接将告诉您如何连接内存中的数据库:

2-增加缓存大小,将事务保留在内存中,并将“临时存储”保留在内存中: 提供了一个很好的例子,即:

sqlite> attach database ':memory:' as mydb;
sqlite> .schema
CREATE TABLE log(ts,msg TEXT);
sqlite> create table mydb.log as select * from log;
sqlite> select * from mydb.log order by ts desc limit 5;

然而,我有点失望,因为我所希望的速度提高没有实现。我想是吧。我尝试的数据集大于300MB,远远超过了这里给出的默认页面缓存大小,因此您可以想象,将整个数据库加载到RAM中会产生明显的结果,但事实并非如此。有什么想法吗?

您需要描述一下您试图获得的改进。。。听起来您可能需要定义一些索引,并确保它们按预期使用。如果您发布更多信息,例如表的结构,以及需要改进的SQL,也许我或其他人能够提供帮助。