MySQL知识了解

1、数据库的类型

非关系型数据库:存储格式灵活,可以是key-value的形式,也可以是文本文档图片等形式。读写速度快,可以使用磁盘或随机存储器作为载体,具有高扩展性,但是不支持sql语句,无事务处理。

关系型数据库:支持事务、使用表结构,可用复杂查询,但是读写性能差,固定表结构,数据存储不够灵活,对于高并发的读写请求,磁盘io是很大的瓶颈。

2、主从复制原理

主库开启binlog日志,授权用户密码

从库指定master_host、master_user、master_password、master_log_file、master_pos,执行start slave后会开启两个线程io线程和sql线程,主库开启dump线程。当主库binlog日志内容更新后,dump线程会告诉io线程,io线程读取binlog日志,并将内容记录到从库的中继日志,sql线程读取中继日志,并执行,达到数据一致的目的。

3、主从方式有几种

两种:binlog日志,gtid。

4、mysql的数据备份有几种

逻辑备份:mysqldump,备份sql语句,速度慢,恢复也慢,需要一条一条执行sql语句

物理备份:xtrabackup备份

完全备份:备份当前的所有数据

增量备份:备份上一次备份到当前时间点的更新的所有数据(上一次备份可以是全备也可以是增量备份),数据占用磁盘空间小,但恢复过程较复杂

差异备份:备份上一次完全备份到当前时间点的所有数据,占用磁盘空间比较大,恢复过程简单

策略:周日做全备,周一到周六每天增量备份,结合计划任务定期处理7天前的备份数据(迁移到其他安全的地方)

5、事务的四个特性

原子性:一个事务的执行要么全部执行,要不全不执行,不会结束到中间某个环节,也就是说如果在某个环节失败了,会回滚到事务开始前的状态,就像什么都没有发生一样

隔离性:数据库允许多个事务同时对数据库的数据进行读写和修改的能力,隔离性为了防止多个事务并发执行由于交叉执行导致的数据不一致。隔离级别分为读未提交、读提交、可重复读、串行化。隔离等级越高,数据越安全,但是消耗的资源就越多。

一致性:事务开始前和结束后,数据库的完整性没有被破坏,即写入的数据必须符合预设的规则,两个数据保持一致就是一致性

持久性:事务结束后,对数据的修改是永久写入到磁盘的,即使系统故障也不会丢失

6、脏读、不可重复读、幻读是什么

脏读:a开启了一个事务并更新了数据,但是未提交,b读取了a更新的数据,但是a此时进行了事务回滚,b读到的就是脏数据

不可重复读:事务a多次读取同一数据,事务b在a多次读取过程中对数据做了更新并提交,导致a在多次读取数据时结果不一致。

幻读:管理员a将学生成绩从具体分数改为abcde等级,但是管理员b在这个时候插入了一条具体分数的记录,当管理员a修改结束后,发现还有一条数据没改过来,就像发生了幻觉一样。

不可重复读和幻读很容易混淆,不可重复读侧重于修改,幻读侧重于新增或删除,解决不可重复读只需锁住满足条件的行,解决幻读需要进行锁表

7、数据库引擎

innodb:支持事务,支持行锁定

myisam:有较高的查询速度,但是不支持事务

memory:需要很快的读写速度但是对安全性要求不高的话可以使用,但是对表的大小有要求。支持锁表不支持行锁定。

8、mysql的数据类型

整数型、浮点型、文本字符串类型、日期时间类型、枚举型、集合型

9、mysql的约束添加

主键:用于唯一的标识表行的数据,当定义主键约束后,此列不能重复

不能为空:定义not null后,此列的值不能为空

default:默认约束,即使插入数据没有值,都会有默认值

unique:唯一约束,该列不允许重复

自增键

10、mysql主从数据不一致的原因

网络延迟,主从复制是基于binlog的异步复制,通过网络传送binlog文件,网络延迟是大多数引起数据不一致的原因

主从机器的负载不一致:mysql主从复制是主库开启dump线程,从库开启io和sql线程。当任何一台服务器负载过高,导致其中一个线程资源不足,会出现主从不一致的情况

版本不一致

max_allowed_packet设置不一致:主库设置的max_allowed_packet设置的比从库大,一条大的sql语句在主库能执行完毕,但在从库上无法执行,导致主从不一致。

解决方法:1、stop slave set global sql_slave_skip_counter=1 跳过这一步错误;2、重新做主从:先锁表,导入数据数据+同步,重新做主从

11、怎么彻底删除数据库一个表

drop table table_name from 库名;

12、读写分离的好处

分摊服务器的压力,提高系统的处理效率。分担主服务器的读取压力,间接提高了主库的写入压力。因为读请求全部发给了从库。

13、mysql的优化

安全方面:修改默认端口号,禁止root用户远程登录,对用户降权,以普通用户运行mysql

性能方面:升级硬件,内存、磁盘、优化sql语句(开启慢查询)、设置索引

参数优化:innodb的buffer参数调大,连接数调大、缓存的参数优化

架构方面:读写分离,一主多从,高可用

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

孤城小巷少年游

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值