数据库是如何确认你能收到消息?

  1. 例如业务连接数据库,发送了一条sql语句。
  2. mysql执行成功sql语句,通过socket发送给业务消息(消息A)。
  3. 问:如果消息A在socket传输过程中失败了, 业务没有接收到消息A,会认为sql执行失败了,从而处理其他逻辑。这种不一致问题会存在吗?如何解决呢?因为网络问题比较容易出现问题,所以我才考虑这个事情。

你必须做出一个决断,到底是保尽可能多的数据即使不完整还是保证完整性即使丢失一些数据。
这两者不能两全。
如果前者,那么数据库收到,无论任何情况,都插入
如果后者,那么数据库收到,向客户端发出确认收到,得到确认再插入,否则回滚事务