MySQL
文章平均质量分 92
X2512261315
这个作者很懒,什么都没留下…
展开
-
MySQL数据库日志之为什么需要redo log?
为 0 时,如果 MySQL 挂了,或者宕机了,可能会丢失 1 秒数据,因为不主动刷盘,靠后台系统线程 1 秒轮询刷盘,或者 redo log buffer size 容量到一半,线程刷盘。事务提交就会主动刷盘,如果事务执行期间 MySQL 挂了或者宕机了,日志丢了,但是事务没有提交,所以日志丢了没损失。首先,数据页的大小是 16KB,刷盘比较耗时,可能就修改数据页里的几 Byte,那就没有必要把完整的的数据页刷盘。所以,0 和 2,都是后台线程刷盘,那么一旦异常,可能都会损失 1 秒的数据。原创 2024-09-16 08:27:40 · 685 阅读 · 0 评论 -
MySQL日志之为什么需要binlog?
它记录了数据库运行状态的各种信息,包括错误信息、查询信息、事务信息等等,是进行异常排查、性能优化、数据恢复和备份的关键基础。原创 2024-09-15 19:00:00 · 838 阅读 · 0 评论 -
MySQL高可用之分库分表
当表 的数据量大到一定程度时, 分区也不太好解决问题,此时就要拆分表结构,把一张表拆分成多张表,查询的时候根据拆分表的方式去相应的表中查询数据。,因为在单表中我们可以用数据库主键做唯一 ID ,但是如果做了分库分表,多张单表中的自增主键就会发生冲突。但是不管什么算法,都要保证一个前提,那就是同一个分表字段,经过这个算法处理后,得到的结果一定是一致的,不可变的。一致性哈希可以将常用的 hash 算法来将对应的可以哈希到一个具有 2 的 32 次方个节点的空间中,那么这里的用户,时间,地区就是分表字段。原创 2024-09-15 12:25:59 · 743 阅读 · 0 评论