无法读取持久化数据 app为什么登录才能用?

app为什么登录才能用?app的数据持久化只能存储在后端服务器。只有登录后,当前登录用户的信息才能与后端服务器存储的数据建立一一对应的关系。应用用户可能会定期清理缓存,甚至卸载应用。但app重新登录后

app为什么登录才能用?

app的数据持久化只能存储在后端服务器。只有登录后,当前登录用户的信息才能与后端服务器存储的数据建立一一对应的关系。

应用用户可能会定期清理缓存,甚至卸载应用。但app重新登录后,会根据登录用户的身份信息,从app后台服务器读取所有与用户关联的持久化数据,这样app的用户就不会有数据丢失的风险。

mysql持久化原理?

持久性定义

持久性意味着一旦事务被提交,其对数据库的更改应该是永久的,并且后续操作或失败不应该对该事务的修改有任何影响。

我们知道InnoDB使用缓冲池来提高读写性能。但是,缓冲池位于内存中,并且是易变的。如果MySQL在一个事务提交后突然关闭,而此时缓冲池中的修改数据还没有刷新到磁盘,就会导致数据丢失,事务的持久性无法保证。

为了解决这个问题,InnoDB引入了重做日志来实现数据修改的持久性。当数据被修改时,InnoDB不仅会修改缓冲池中的数据,还会将操作记录在重做日志中,并确保重做日志比相应的页面更早关闭(通常在事务提交时),也就是常说的WAL。如果MySQL突然关闭并且没有 t把数据刷回了磁盘,重启后MySQL会通过已经写入磁盘的重做日志来恢复没有刷新到磁盘的数据页。

实现原理:重做日志

为了提高性能,与数据页类似,重做日志也包括两部分:一部分是内存中的重做日志缓冲区,易失性;第二个是磁盘上的重做日志文件,它是持久的。重做日志是一种物理日志,它记录了数据库中的物理页面。

当数据被修改时,InnoDB不仅会修改缓冲池中的数据,还会将操作记录在重做日志缓冲区中。提交事务时,重做日志缓冲区将被刷新并记录在重做日志文件中。如果MySQL宕机,您可以读取重做日志文件中的数据,并在重启时恢复数据库。这样,你就不 不需要每次提交事务时都实时刷新。

那个 s大概都是,如果出现意外关机,需要数据恢复,也可以做持久化。