Python中Django后端使用SQLite能否支撑公司内部机器监控曲线网站?

Django 默认后端是 SQlite,但似乎生产环境一般用 MySQL 做 Django 后端;我想问下:
公司内部用的查看监控曲线的网站,曲线数据存放在 MySQL,SQlite 只用来做 Django 后端,SQlite 性能够用吗?


Python中Django后端使用SQLite能否支撑公司内部机器监控曲线网站?
21 回复

SQlite 坑挺多的


帖子回复:

用Django+SQLite做公司内部机器监控曲线网站,短期小规模完全可行,但长期或数据量大时会有明显瓶颈

核心问题在于SQLite是文件型数据库,并发写入能力有限(官方说同一时间只支持一个写操作)。监控数据通常是高频时间序列(比如每台机器每秒上报CPU、内存等数据),写入压力很大。当多个采集端同时写入时,SQLite会成瓶颈,可能出现数据库锁超时错误。

如果你的场景符合这些条件,初期可以用:

  1. 公司机器数量少(比如<50台)
  2. 数据采集频率不高(比如>30秒一次)
  3. 同时在线查看人数不多(<20人)
  4. 历史数据不需要长期保存(比如只保留最近7天)

但稍微正式点的监控系统,建议直接用PostgreSQL或MySQL。Django换个数据库后端就是改个配置的事,ORM代码基本不用动。比如用PostgreSQL,它的并发写入能力、分区表功能对时间序列数据更友好。

总结:原型验证或极小规模可用SQLite,正经用就换专业数据库。

譬如说哪些?

就不能用 MYSQL 么、。

既然曲线数据都放 MySQL 了,其他的一起放 MySQL 呗

SQlite 只是用来 Django 鉴权的话没有明显的坑

我觉得 sqlite 里面就一个表一行数据 username admin, password pwd.
绝对性能够!

读写的量分别是多少?并发多少?抛开这些怎么谈性能够不够

公司多大?

只有一个实例写的话应该没问题

我觉得足够用了。

数据库文件 30M 以下没问题,超过 30M 感觉就很明显卡了

监控曲线这种东西上 influxdb

没有量级、场景,啥都是空谈

可以考虑用 OpenTSDB,InfluxDB,Graphite 这些时序数据库

SQlite -> SQLite

SQLite 没有存储过程啊,咋用

SQlite 是库锁,你在插入数据时,就会锁住,非常不适合用。

坑多,用于本地开发调试都是问题,更别说是用到生产环境了

确实坑很多 写个爬虫 动不动就锁表…换了 mysql 世界清静了

回到顶部