Mysql最全面试总结

什么是数据库

数据库就是一个储存计算机数据的仓库,按照一定的数据结构对数据进行组织和储存,并通过一些方法管理这些数据。

数据库的种类

关系型数据库存储格式灵活,读写速度快,可以使用磁盘或随机存储器作为载体,高扩展性,但是不支持sql语句,无事务处理

关系型数据库:支持事务原子性,一致性,隔离性,持久性、使用表结构,可用复杂查询,但是读写性能差,固定表结构,数据存储不灵活 

生产环境常用数据库

关系型数据库有 Oracle、Microsoft SQL Server、MySQL/MariaDB等。

非关系型数据库有 MongoDB Memcached Redis

sql语句

QL(Structured Query Language 即结构化查询语言)

SQL语言主要用于存取数据、查询数据、更新数据和管理关系数据库系统,SQL语言由IBM开发。

DDL语句 数据库定义语言:数据库、表、视图、索引、存储过程,例如CREATE DROP ALTER

DML语句   数据库操纵语言(对记录的操作): 插入数据INSERT、删除数据DELETE、更新数据UPDATE

DCL语句 数据库控制语言(和权限有关): 例如控制用户的访问权限GRANT、REVOKE

DQL语句   数据库查询语言:查询数据SELECT

增:create database d1;

create table  d1.t1(id int primary key auto_increment,name char(5));

insert  into  d1.t1(name)  values(chen),(wei);

insert  into t3 set id=4,name=chen;

alter table 表名 add 字段 类型  first;

删:drop database  d1;

drop  table  t1;

alter table t3 drop name; 删除字段

delete from t1 where id=6; 删除id=6的行记录

改:alter table 表名 change 旧字段 新字段 类型;

update 表名 set  修改的字段  where  给谁修改;

查:select   字段名称,字段名称2    from  表名   条件

mysql> select id,name,salary from   t1   where salary>2000;

统计字段得到数量:

mysql> select count(id) from employee5;

mysql>select name,salary from t1 where order by salary;

 #-默认从小到大排序    order by salary desc; #降序,从大到小

mysql>select name,salary from  t1 order by salary  limit 1,2;#从第1行开始,打印2行

多表查询

内连接:在做多张表查询时,这些表中应该存在着有关联的两个字段,组合成一条记录。内连接查询:只显示表中有匹配的数据只找出有相同部门的员工

外连接:在做多张表查询时,所需要的数据,除了满足关联条件的数据外,还有不满足关联条件的数据。此时需要使用外连接.外连接分为三种

左外连接:表A left [outer] join 表B  on 关联条件,表A是主表,表B是从表。

右外连接:表A right [outer] join 表B  on 关联条件,表B是主表,表A是从表。

全外连接:表A  full [outer] join 表B on 关联条件,两张表的数据不管满不满足条件,都做显示。     

从数据库的读的延迟问题了解吗?如何解决?

解决方法:

半同步复制—解决数据丢失的问题

并行复制—-解决从库复制延迟的问题

从节点过多

数据库主从不同步的原因 

网络延迟:数据库主从同步是基于binlog日志的异步复制,而binlog日志是通过网络进行传输的,网络延迟大时,可能会造成主从不同步

主从数据库负载不一致:主从同步时,主数据库需要一个io线程,而从服务器需要一个 io线程和一个sql线程,当一台服务器负载过大时,会导致提供给线程的资源不足,主从同步就无法完成

mysql的优化

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

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

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

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

mysql的数据备份有几种

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

物理备份:xtrabackup备份

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

增量备份:备份到上一次备份的节点,数据占用磁盘空间小,但恢复过程较复杂

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

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

主从复制原理

首先,要实现主从复制,就必须打开主库master端的bin-log日志,主从复制就从库Slave通过I/O线程从主库Master端获取相应的二进制日志,然后再在自己Slave端完全顺序的执行日志中所记录SQL语句。

主从复制延迟大比较慢原因:

从库配置低于主库,导致复制延迟;

主库读写压力大,导致复制延迟

主从库之间网络延迟;

主库的从库太多,导致复制延迟;

SQL语句太多

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值