怎样才能叫做熟悉mysql_面试不知如何回答这六大知识点,你还敢说熟悉MySQL?...

学号课程号成绩

001

101

80

002

102

90

表六

四、MySQL的主从复制

1. 概念

MySQL 主从复制是指数据可以从一个MySQL数据库服务器主节点复制到一个或多个从节点。

2. 原理

d7e28e2ac4f4da458f9ddfa8132c1e88.png

从库生成两个线程,一个I/O线程,一个SQL线程。

I/O线程 去请求主库 的binlog,并将得到的binlog日志写到relay log(中继日志) 文件中;

主库会生成一个 log dump 线程,用来给从库 I/O线程传binlog。

SQL线程 会读取relay log文件中的日志,并解析成具体操作,来实现主从的操作一致,而最终数据一致。

3. 主从复制用途

① 读写分离,在开发工作中,有时候会遇见某个sql

语句需要锁表,导致暂时不能使用读的服务,这样就会影响现有业务,使用主从复制,让主库负责写,从库负责读,这样即使主库出现了锁表的情景,通过读从库也可以保证业务的正常运作。

② 数据实时备份,当系统中某个节点发生故障时,可以方便的故障切换。

五、MySQL中的锁

1. 为什么要加锁

数据库的锁是为了支持对共享资源进行并发访问,提供数据的完整性和一致性。在数据库中加锁是保证在高并发的情况下,访问数据库的时候,数据不会出现问题。

2. 锁的分类

按操作分:

① 读锁(共享锁):针对同一份数据,多个读取操作可以同时进行而不互相影响。

② 写锁(排它锁):当前写操作没有完成前,会阻断其他写锁和读锁。

按粒度分:

① 表锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。

② 行锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。

③ 页锁:开销和加锁时间界于表锁和行锁之间;会出现死锁;锁定粒度界于表锁和行锁之间,并发度一般。

六、如何做 MySQL的性能优化

① 当只需要一条数据的时候,使用 limit 1

② 尽量避免使用 select * ,在查询的时候列出需要查询的字段。

③ 使用 join 代替子查询。

④ 减少使用 or,使用 in 或者 union(union all) 代替。

⑤ 为搜索字段创建索引。但是不要过度索引,索引越多,占用空间越大,反而性能变慢。

⑥ 避免进行类型转换,不然会导致索引失效。

⑦ 对查询语句使用explain 。 使用explain ,可以帮助了解MySQL是如何处理sql语句的, 可以查看到sql的执行计划,这样就能更好的去了解的sql语句的不足,然后优化语句。

⑧ 垂直分割,将常用和有关系的字段放在相同的表中,把一张表的数据分成几张表 这样可以降低表的复杂度和字段的数目,从而达到优化的目的

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值