首页 > 数据库 >SQlLite Wal 模式

SQlLite Wal 模式

时间:2023-08-08 18:23:13浏览次数:50  
标签:WAL 数据库 写入 模式 Wal PRAGMA journal SQlLite

QLite WAL(Write-Ahead Logging)模式主要有以下几个优点:

1. 提高写入性能WAL模式将数据先写入日志文件,然后再定期更新到实际数据文件中。这避免了每次写入都要同步更新数据文件,大大提升了写入速度。

2. 提高并发性能WAL模式采用乐观锁并发控制,允许在同一数据库的多个连接中同时写入,并发性能好于rollback journal模式。

3. 提高崩溃恢复能力WAL日志包含尚未提交到数据文件的数据变更记录,即使数据库异常关闭,也可以通过WAL恢复未提交事务。

4. 支持热备份可以直接复制WAL文件来创建一个数据库的热备份,避免停库影响业务。

5. 支持点恢复WAL包含历史所有变更记录,可以基于某一历史时间点还原数据库。

6. 减少磁盘碎片长时间运行后,磁盘碎片较小,不需要常规优化数据库文件。

7. 支持跨平台复制不同系统平台间可以通过WAL实现数据库复制,这是rollback journal模式所不支持的。

综上所述,WAL模式可以带来写入性能、并发性能、崩溃恢复能力等方面的提升,在大多数场景下都是比rollback journal模式更好的选择

二、开启WAL模式

 

1. 通过 SQLite 命令行工具打开数据库。
sqlite3 test.db
2. 在数据库打开后,执行 PRAGMA 命令开启 WAL 模式。
sql
PRAGMA journal_mode=WAL;
3. 这样就可以开启 WAL 模式了。
4. 也可以在打开数据库时直接指定 journal_mode 参数来开启 WAL 模式。
sqlite3 test.db -journal WAL
5. 在应用程序中,可以在打开数据库连接时执行以下PRAGMA语句开启WAL模式:
sql
PRAGMA journal_mode=WAL;
6. 注意WAL模式要求SQLite版本在3.7.0或更高。
7. 如果想恢复到默认的rollback journal模式可以用:
sql 
PRAGMA journal_mode=delete;

 

标签:WAL,数据库,写入,模式,Wal,PRAGMA,journal,SQlLite
From: https://www.cnblogs.com/stroll/p/17615106.html

相关文章

  • mongodb副本集模式的单机部署+修改ip
    环境:OS:Centos7mongodb:4.4.22 1.解压[root@localhostsoft]#tar-xvfmongodb-linux-x86_64-rhel70-4.4.22.tgz[root@localhostsoft]#mvmongodb-linux-x86_64-rhel70-4.4.22/usr/local/services/mongodb 2.创建目录mkdir-p/home/middle/mongodb/data/mkdir-p/ho......
  • 设计模式 solid原则
    SOLID原则是一组面向对象设计和编程的原则,旨在提供可维护、可扩展和可重用的代码。下面是SOLID原则的简要介绍:单一职责原则(SingleResponsibilityPrinciple,SRP):一个类应该只有一个引起变化的原因。换句话说,一个类应该只负责一个单一的功能或职责。开放封闭原则(Open-ClosedP......
  • kube-proxy 三种模式分析
    kube-proxy三种模式分析kubernetes上面的service资源的实现方式是由kube-proxy提供的模式决定的kube-proxy提供三种模式:userspace(Kubernetes1.2版本之前)、iptables、ipvs(推荐的)如果不满足ipvs时,会自动降为iptables模式再讲三种模式前,先简单说下Service的工作原理;在......
  • Linux防火墙firewalld&iptables(2)iptables开放指定端口开放指定端口
    一、CentOs6iptables基本操作#chkconfig--list|grepiptables 查看防火墙的服务#chkconfigiptablesoff 永久关闭防火墙#chkconfigiptableson 永久开启防火墙#servicestatusiptables 查看防火墙状态#servicestartiptables 启动防火墙#servicestopiptab......
  • 对现代电网变电运维管理模式的浅析--安科瑞张田田
    安科瑞张田田摘要:当前,随着经济建设的不断发展,我国电力企业的快速发展受到了推动。在电力企业发展过程中,变电运行维护管理是一项重要内容。管理模式的好坏直接关系到整个电网的稳定发展。因此,在现代变电运行管理过程中,需要提高管理水平,提升平平供电企业的持续稳定发展,为人民群众提供......
  • 设计模式(一)单例
    一、定义确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类,它提供全局访问的方法。单例模式是一种创建型模式。在单例类的内部定义了一个静态对象,作为提供外部共享的唯一实例为了防止在外部对单例类实例化,它的构造函数被设为private在单例类......
  • Android之Spinner用法,key/value模式
    参考:http://www.dedeyun.com/it/m/98498.htmlhttps://blog.csdn.net/myxiaoq/article/details/258696931.key、value类,需要重写toString()方法,返回text就是Spinner要显示的keypackagecom.jay.common;publicclassSpinnerData{privateStringvalue="";private......
  • 哪种模式ip更适合你的爬虫项目?
    作为一名爬虫程序员,对于数据的采集和抓取有着浓厚的兴趣。当谈到爬虫ip时,你可能会听说过两种常见的爬虫ip类型:Socks5爬虫ip和HTTP爬虫ip。但到底哪一种在你的爬虫项目中更适合呢?本文将帮助你进行比较和选择。首先,让我们来了解一下Socks5爬虫ip和HTTP爬虫ip的基本概念和工作原理。So......
  • 虚拟机 的net模式与 桥接模式, windows可以ping通 虚拟机,但是虚拟机无法ping通 windows
    1第一个问题,net与桥接的模式。    2第二个问题,虚拟机ping不通PC,但是PC可以ping通虚拟机。  ......
  • FactoryPattern-工厂模式
    在C#中,工厂模式(FactoryPattern)是一种常用的设计模式,它属于创建型模式。在C#中,工厂模式用于创建对象,而不需要直接使用构造函数来实例化对象。它通过一个工厂类来封装对象的创建逻辑,使得客户端只需要与工厂类交互,而无需关心具体的对象创建过程。1.简单工厂简单工厂模式(SimpleFac......