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卡寿命的主要内容,如果未能解决你的问题,请参考以下文章