我在应用程序中使用React-Native-sqlite存储。我如何使WAL能够实现非锁定读取操作。基本上,我使用PRAGMA journal_mode=WAL
启用了WAL,但仍然没有更改,我的阅读查询仍然被阻止。
如何使用反应 - 新的 - 列置存储来实现WAL?我是Sqlite的新手
对于所有不知道该主题的人,让我告诉你,什么是wal,它是写作。这是什么意思?基本上,概念是改善DB上的写操作。
我们大家都不知道第三方lib的工作原理,它们的效率有多高?在我们深入第三方之前,我们不知道这是效率。react-native-sqlite-storage
是一项工作,因此没有任何困扰,但是我们必须在我们这边实现一些功能,以使情况看起来更好。
pragma journal_mode = wal是一个查询,将新数据添加到书面记录文件中。我的意思是,每当我们在DB中编写新数据时,都会发生的是将先前写入的数据复制到回滚文件,而新数据直接写入DB文件,因此,当写大量数据时,这不是一个好练习因此,在数据库文件中,会导致每个DB更改的两个磁盘写入两个磁盘。
wal可以通过不直接写新数据,而不是将新数据写入记录文件,从而使您和平生活,因此,这会导致单磁盘写入。
现在让我们如何工作:
在您首次打开DB时,将调用此功能时,您可以通过在模式查询之后在此函数中执行另一个查询来填充DB。
。populateDatabase(db) {
const selectMode = 'PRAGMA journal_mode=WAL;'
db.executeSql(selectMode, [],
() => {
console.log('running query...')
},
(error) => {
console.log('error implementing', error)
})
}
一切似乎很酷。请随时提出问题。
欢呼:(
编辑1:
使用WAL时存在性能问题,读取性能 可能会遭受大WAL文件的困扰,因为必须搜索数据 两个地方。