【问题标题】:mysqldb database storage in rammysqldb数据库存储在ram中
【发布时间】:2016-10-23 18:13:08
【问题描述】:

我是 Python 新手。我正在尝试在运行 Python 2.7 和 MySQLdb 的 Raspberry Pi 中实现对两个鼓风机的控制,以冷却封闭空间。我想每 5 分钟在 1 行存储 21 列数据,持续 48 小时。 48 小时后,每次添加新行时,都会删除最旧的行,从而限制数据库的大小。数据库的目的是能够查看过去两天的系统性能,并将数据用于系统监控和优化。因为,我希望这个系统可以运行多年,我担心 Raspberry Pi 的非易失性 SD 卡存储将因大量重写而开始出现故障。我不担心数据安全。我正在寻找一种解决方案,将数据表存储在 ram 中以防止 SD 卡过早发生故障,并且因为如果数据丢失会导致系统重新启动时出现断电等情况,数据库将在下一次重新填充新数据两天。我希望有人能指出我正确的方向来编写一个存储在 ram 中的表的数据库。

【问题讨论】:

  • 欢迎来到 Stackoverflow。如果您向我们展示您迄今为止所做的工作,您将收到更多回复。你的问题越具体越好。

标签: python python-2.7 mysql-python raspberry-pi2


【解决方案1】:

您应该使用 SQLite 而不是 MySQL,它是 Python 附带的,并且可以选择创建 in-memory database

或者,如果您存储的只是键值对,Redis 会更合适。

不过,一般来说,如果您担心 SD 卡出现故障,为什么不购买小型外置 HD 并将其连接到 pi?

【讨论】:

    【解决方案2】:

    如果你真的想在 MySQL 中使用内存表,你应该看看How do I make a MySQL database run completely in memory?

    另一个解决方案是在内存中创建一个文件系统。我在那里找到an article you could study。本质上是推荐使用tmpfs,然后定位到上面的表。

    是否有什么特别的原因要走硬路线,而不是像 Daniel 建议的那样使用普通的 Python 结构或 SQLite 内存数据库?

    【讨论】:

      猜你喜欢
      • 2012-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多