mysql主从数据库的问题:到底谁触发谁

mysql主从数据库的问题:到底谁触发谁,第1张

1,MySQL 使用3 个线程来执行复制功能(其中1 个在主服务器上,另两个在从服务器上。当从服务器发出START SLAVE时,从服务器创建一个I/O线程,以连接主服务器并让主服务器发送二进制日志。主服务器创建一个线程将二进制日志中的内容发送到从服务器。从服务器I/O 线程读取主服务

器Binlog Dump线程发送的内容并将该数据拷贝到从服务器数据目录中的本地文件中,即中继

日志。第3个线程是SQL 线程,从服务器使用此线程读取中继日志并执行日志中包含的更新。

2,如1所述,主服务器收到从服务器的同步请求后,开始向从服务器发送二进制日志

3,附件的文档可以参考下

注:你使用java程序同步数据,先不说java的效率,仅仅全部sql都同步到从表再顺序执行就有问题,反复查库,插数据,还有数据不一致的问题,如insert into tab values (now())等等;

个人意见,仅供参考

MySQL主从同步是指在数据库之间进行实时数据复制,使得主机上的所有变化都能被立即复制到从机上。而异步同步是指在数据库之间进行延迟性的数据复制:一旦主机上的信息发生变化,需要等待特定时间或者当特定条件满足时才会将新的信息向从机传递。

主从 就是 读写分离,主数据库负责写服务器,实时同步到从数据库(硬件和网络不同情况会有不同时间的延迟,阿里云主从数据库延迟几十毫秒), 从数据库负责提供读取服务器,创建只读账号 不能创建表和写入数据。

双主集群 没听过,你说的是不是Mysql的MMM架构,当一个主从挂掉了 自动切换到另外一个主从服务器,当这个恢复后自动把增加的数据拷贝 回来 并提供服务

正值 - 表示主从已经出现延时

0 - 该值为零,是我们极为渴望看到的情况,也就是该线程的Running状态是No,这是一个BUG值,该参数是不支持负值的可以通过监控show slave status\G命令输出的Seconds_Behind_Master参数的值来判断,表示主从复制良好,可以认为lag不存在,是否有发生主从延时。

其值有这么几种,数字越大表示从库落后主库越多。

负值 - 几乎很少见:

NULL - 表示io_thread或是sql_thread有任何一个发生故障,而非Yes,只是听一些资深的DBA说见过,其实

大家好,我是Tom哥~

为了便于大家查找问题,了解全貌,整理个目录,我们可以快速全局了解关于mysql数据库,面试官一般喜欢问哪些问题

接下来,我们逐条来看看每个问题及答案

MyISAM 和 InnoDB 的区别?

答案:InnoDB 支持 事务、外键、聚集索引,通过MVCC来支持高并发,索引和数据存储在一起。InnoDB 不保存表的具体行数,执行 select count() from table 时需要全表扫描。而MyISAM 用一个变量保存了整个表的行数。

InnoDB 最小的锁粒度是行锁,MyISAM 最小的锁粒度是表锁,并发能力低。MySQL 将默认存储引擎是 InnoDB

mysql 锁有哪些类型?

答案:mysql锁分为共享锁( S lock ) 、排他锁 ( X lock ),也叫做读锁和写锁。根据粒度,可以分为表锁、页锁、行锁。

什么是间隙锁?

答案:间隙锁是可重复读级别下才会有的锁,mysql会帮我们生成了若干 左开右闭 的区间,结合MVCC和间隙锁可以解决幻读问题。

如何避免死锁?

答案:死锁的四个必要条件:1、互斥 2、请求与保持 3、环路等待 4、不可剥夺。

数据库的隔离级别?

答案:读未提交、读已提交、可重复读(mysql的默认级别,每次读取结果都一样,但是有可能产生幻读)、串行化。

Mysql有哪些类型的索引?

答案:

什么是覆盖索引和回表?

答案:

1、覆盖索引,指的是在一次查询中,一个索引包含所有需要查询的字段的值,可能是返回值或where条件

假如我们创建了一个(money,buyer_id)的联合索引,索引的叶子节点包含了 buyer_id 的信息,则不会再 回表 查询。

2、回表,指查询时一些字段值拿不到,需要到主键索引B+树再查一次。

Mysql的最左前缀原则?

答案:即最左优先,在检索数据时从联合索引的最左边开始匹配,直到遇到范围查询(如:> 、< 、between、like等)

例子:where a = 1 and b = 2 and c > 3 and d = 4 ,如果建立(a,b,c,d)组合索引,d是用不到索引的;如果建立(a,b,d,c)的索引则都可以用到,a,b,d的顺序可以任意调整。

线上SQL的调优经验?

答案:

官方为什么建议采用自增id 作为主键?

答案:自增id是连续的,插入过程也是顺序的,总是插入在最后,减少了页分裂,有效减少数据的移动。所以尽量不要使用字符串(如:UUID)作为主键。

索引为什么采用B+树,而不用B-树,红黑树?

答案:提升查询速度,首先要减少磁盘IO次数,也就是要降低树的高度。

事务的特性有哪些?

答案:ACID。

如何实现分布式事务?

答案:

日常工作中,MySQL 如何做优化?

答案:

mysql 主从同步具体过程?

答案:

什么是主从延迟?

答案:指一个写入SQL *** 作在主库执行完后,将数据完整同步到从库会有一个时间差,称之为主从延迟。计算公式:

注意:不同服务器要保持时钟一致

主从延迟排查方法?

答案:通过 show slave status 命令输出的 Seconds_Behind_Master 参数的值来判断

主从延迟要怎么解决?

答案:

如果数据量太大怎么办?

答案:mysql表的数据量一般控制在千万级别,如果再大的话,就要考虑分库分表。除了分表外,列举了面对海量数据业务的一些常见优化手段

分表后ID如何保证全局唯一呢?

答案:分库分表后,多张表共用一套全局id,原来单表主键自增方式满足不了要求。我们需要重新设计一套id生成器。特点:全局唯一、高性能、高可用、方便接入。

分表后可能遇到的哪些问题?

答案:分表后,与单表的最大区别是有分表键 sharding_key ,用来路由具体的物理表,以电商为例,有买家和卖家两个维度,以 buyer_id 路由,无法满足卖家的需求,反之同样道理。如何解决?

以上就是关于mysql主从数据库的问题:到底谁触发谁全部的内容,包括:mysql主从数据库的问题:到底谁触发谁、mysql主从同步异步区别、mysql分布式集群如何理解,相对mysql主从复制,双主集群有什么区别等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/10148655.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存