Socket
Socket
Sign inDemoInstall

sqlite-rw

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

sqlite-rw

sqlite读写分离库


Maintainers
1

sqlite-rw

为sqlite提供读写分离能力,提高并发度。

解决什么问题?

sqlite是一个很好用的嵌入式数据库,但是由于sqlite采用了库级别的文件锁,所以并发能力不强,当存在慢SQL,比如在大表上select count(*) from large_table的时候,会导致其他任务无法写入。

sqlite-rw就是为了解决这个问题的,思路如下

  • 采用读写分离的存储模式,每次写入会持久化写库,并且记录日志到binlog表,然后异步写入读库。
  • 读取的时候可以选择从读库或者写库读取,默认从读库读取。

提高并发度的原理

  • sqlite本身读取是支持并发的,但是写入是不能和读取并发的。所以读库本身是支持并发读取的,同步的写操作是通过id主键写入的,耗时会比较短,基本上不会阻塞读操作。
  • 由于是读写分离的,在读库存在慢SQL的情况下,写库也能够正常工作,在读库慢SQL执行完成之后,系统会把写库的数据同步到读库中,使两者保持一致。

使用限制和影响

  • 存储量相比于单独的sqlite会翻倍
  • 写入性能会有所下降,待详细的基准测试
  • 依赖web.pydb接口进行操作

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc