SQLite锁知识及SQLITE_BUSY错误处理
目录
经验案例
SQLITE 死锁定位及解决方法
目的
SQLite是一款轻量级的数据库,用在终端服务器NVR和DVR上。如何有效使用避免死锁,以及当发生死锁时如何处理都具有非常重要的意义,本文将深入探讨如何处理关于sqlite死锁的知识,以及当发生死锁时如何解决死锁。
背景知识
- SQLite中的锁主要为两类, 一类是回滚日志锁,一类是WAL模式下的锁。回滚日志下的锁本质是锁住数据库文件。 两种锁不是独立的,WAL模式下也会使用回滚日志的共享锁和独占锁。下面分别介绍这两种模式下的锁。
回滚日志锁
SQLite中的锁主要为两类, 一类是回滚日志锁,一类是WAL模式下的锁。回滚日志模式下,如上图所示,SQLite使用锁逐步上升机制, SQLITE的锁状态共有5种(未加锁(UNLOCKED)、共享(SHARED)、保留(RESERVED)、未决(PENDING)和排它(EXCL