Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.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
PHP SQLite3 WAL-每个打开的数据库连接是否都需要close(),即使它们是相同的?_Php_Sqlite_Wal - Fatal编程技术网

PHP SQLite3 WAL-每个打开的数据库连接是否都需要close(),即使它们是相同的?

PHP SQLite3 WAL-每个打开的数据库连接是否都需要close(),即使它们是相同的?,php,sqlite,wal,Php,Sqlite,Wal,Windows10,PHP7,wal模式下的SQLite3数据库,JQuery。jQueryAjax响应非常慢,在网页上的字段中输入和更改值会导致值每隔1-3秒显示/更改一次,直到最后一个给定值显示出来为止,数据库中也是如此。jqueryajax在onblur上启动,输入一个值后,我从字段中移出,然后再次返回以输入一个新值,然后返回,等等 wal文件一直在增长,大约为16MB(数据库文件本身大约为2MB),并且我假设两个文件(db和wal)都是为请求而读取的,wal文件的大小会使速度变慢。还是

Windows10,PHP7,wal模式下的SQLite3数据库,JQuery。jQueryAjax响应非常慢,在网页上的字段中输入和更改值会导致值每隔1-3秒显示/更改一次,直到最后一个给定值显示出来为止,数据库中也是如此。jqueryajax在onblur上启动,输入一个值后,我从字段中移出,然后再次返回以输入一个新值,然后返回,等等

wal文件一直在增长,大约为16MB(数据库文件本身大约为2MB),并且我假设两个文件(db和wal)都是为请求而读取的,wal文件的大小会使速度变慢。还是

数据(不是相同的数据,而是使用具有相同句柄名称的连接)从多个用户使用相同句柄名称从多个工作站的多个PHP脚本中顺序地读写到数据库,如$db_Data=new SQLite3(“path/to/file.db”);,例如,脚本或函数请求数据并以$db_data=new SQLite3(“path/to/file.db”)开头;然后,$v1=$dbh_data->query(“…”),另一个脚本或函数使用$db_data=new SQLite3(“path/to/file.db”)写入数据;然后是$q1=$dbh_data->exec(“…”)

为了使wal文件在运行时的大小为0或非常小,我读到应该关闭()与数据库的所有连接(没有任何对数据库的读取或写入),以允许wal文件内容提交到实际数据库中。当然,这个close()是我当时没有写到脚本/函数中的。现在,如果什么都没有发生,wal文件将保持在16MB左右


我是否必须在所有有“$db_data=new SQLite3(“path/to/file.db”);”的函数和脚本中显式执行close(),还是有办法强制执行“master”或“global”close()操作要一次性建立数据库连接以允许wal文件进入数据库?

在建立数据库连接时,您应该始终关闭数据库连接,以便sqlite能够优雅地清理日志文件等,是的。但请确保强制设置检查点。@Shawn,现在我知道我应该始终关闭连接,但不要再关闭连接。我也读过关于PRAGMAs的文章,并实现了它(wal_autocheckpoint)。但问题仍然存在,wal文件就在那里,我想它会一直存在,直到所有连接都关闭为止,如果没有“主”方法关闭到数据库的所有连接的话。