MySQL/MariaDB,如果没有更改,commit() 是不是会写入磁盘?关注树莓SD卡寿命

Posted

技术标签:

【中文标题】MySQL/MariaDB,如果没有更改,commit() 是不是会写入磁盘?关注树莓SD卡寿命【英文标题】:MySQL/MariaDB, does commit() write to disk if there were no changes? Concerned about Raspberries SD card lifeMySQL/MariaDB,如果没有更改,commit() 是否会写入磁盘?关注树莓SD卡寿命 【发布时间】:2020-09-24 01:08:49 【问题描述】:

我有点担心 Raspberry Pi 的 SD 卡寿命。 在 Raspberry 上,有一个 mysql(MariaDB)服务器正在运行。 我的一个程序每秒都在读取数据库, 然后在互联网上查找一些东西,而且很少, 当有事情发生时,它会写入数据库。

我过去每 5 分钟只使用一次 commit(),但显然如果我不提交, 该程序看不到其他程序的更改,即使这些更改来自表 它不写。

1) 对覆盆子 SD 卡寿命的担忧遍布互联网,所以我的问题是, 如何最好地调用 commit()?

2) 如果它只是从数据库中读取但没有改变任何东西,那么提交是否会访问磁盘? 有没有办法在不提交的情况下查看新的更改?

3) 如果我必须每秒提交一次才能及时看到变化,那有多糟糕?

PS:我正在使用带有 mysql-connector 的 Python3,一个 8 GB 的 SD 以及向我推荐的树莓成像程序的操作系统

【问题讨论】:

您的 SD 卡可以支持多少 DWPD?有些卡对写入的处理非常糟糕,有些则非常好。如果您真的担心,请使用 USB 连接的混合用途 SSD。 至少你会有备份,以防万一出现问题 写入数据库的内容是什么?你说“它只是读”是不是自相矛盾。 程序每秒执行的操作:1) 读取数据库以了解它应该向网站询问什么 2) 向网站询问该信息 3) 如果该信息已更改,它将写入数据库。如此之短,它每秒读取一次,但很少写一些东西。就像每天最多几百行一样。 【参考方案1】:

所以我想既然每天只有几百篇文章,那完全没问题。 但是为什么你们都在cmets中回答了? 我会选择谁作为最佳答案?

【讨论】:

以上是关于MySQL/MariaDB,如果没有更改,commit() 是不是会写入磁盘?关注树莓SD卡寿命的主要内容,如果未能解决你的问题,请参考以下文章

mysql(mariadb)如何更改root密码

如何将LabVIEW连接到MySQL MariaDB

如何MySQL和MariaDB数据库修改root密码

数据库密码如何修改 ROOT

MariaDB与MySQL并存

MySQL Workbench:没有为此帐户设置密码