mysql级联删除_MySQL?运维基础知识面试问答题

请解释关系型数据库概念及主要特点?

概念:关系型数据库是支持采用了关系模型的数据库,简单来说,关系模型就是指二维表模型,而一个关系数据库就是由二维表及其之间的联系所组成的一个数据组织。

特点:最大的特点就是事务的一致性优点:容易理解、使用方便、易于维护、支持 SQL。

缺点:

1,高并发读写需求:网站的用户并发非常高,往往达到每秒上万次读写请求,对于传统关系型数据库来说,硬盘I/O是一个很大瓶颈,用SSD会好一点。

2,海量数据的高效读写:对于数据量巨大的网站来说,关系型数据库的查询效率非常低。

3,固定的表结构。

kunpengku:关系型数据库及其特点​zhuanlan.zhihu.com

请说出关系型数据库的典型产品,特点和应用场景?

1,SQLServer

特点,客户机/服务器体系结构,图形化用户界面,丰富的编程接口工具,与WindowsNT完全集成,具有很好的伸缩性应用场景,主机为windows系统,主要用于web网站的建设,承载中小型web后台数据。

2,MySQL

特点:体积小,总拥有成本低,开放源代码,可运行在多数系统平台上,轻量级易扩展。

应用场景:广泛应用在Internet上的网站中。

3,Oracle

特点:跨平台运行,安全性方面,性能最高,对硬件要求高,价格昂贵。

应用场景:大部分国企事业单位都用Oracle,在电信行业占用最大份额。


请详细描述SQL语句分类及对应代表性关键字。

1,DDL(Data Definition Language)数据库定义语言,create,alter,drop,用于管理数据库,库,表。

2,DCL(Data Control Language)数据控制语言,grant,revoke,commit,roll, 用户授权,权限回收,数据提交回滚等

3,DML (Data Manipulation Language)数据操作语言 select insert, delete, update,针对数据库表的记录,增删改查。


什么是 MySQL 多实例,如何配置 MySQL 多实例?

一台服务器上,MySQL服务器开启多个不同的端口,运行多个MySQL服务进程,这些MySQL进行通过不同的socket监听不同的数据端口,进而互不干涉的提供各自的服务。


如何加强 MySQL 安全,请给出可行的具体措施?

1,避免直接从互联网访问MySQL数据库,确保特定主机才拥有访问权限。(白名单)

2,定期备份数据库

3,禁用或限制远程访问

在my.cnf 中设置bind-address指定ip

4,移除test数据库(默认匿名用户可以访问test数据库)

5,禁用local infile

6,移除匿名账户和废弃的账户

7,限制mysql数据库用户的权限

8,移除和禁用.mysql_history文件


delete和truncate的区别

sql语句中----删除表数据drop、truncate和delete的用法

--drop

drop table tb --tb表示数据表的名字,下同

删除内容和定义,释放空间。简单来说就是把整个表去掉.以后要新增数据是不可能的,除非新增一个表,

例如:一个班就是一个表,学生就是表中的数据,学生的职务就是定义

drop table class,就是把整个班移除.学生和职务都消失

---truncate

truncate table tb

删除内容、释放空间但不删除定义。与drop不同的是,他只是清空表数据而已,

同样也是一个班,他只去除所有的学生.班还在,职务还在,如果有新增的学生可以进去,也可以分配上职务

删除内容很容易理解,不删除定义也很容易理解,就是保留表的数据结构

执行语句之后,发现数据表的结构还在,也就是不删除定义

delete删除过行数据,所以会出现标识列不连续(体现了delete删除是不释放空间的)

经过truncate table Teacher 之后 再新增三条数据,发现插入数据的时候,标识列连续了(体现了truncate删除是释放空间)

注意:truncate 不能删除行数据,要删就要把表清空

---delete

delete table tb

--虽然也是删除整个表的数据,但是过程是痛苦的(系统一行一行地删,效率较truncate低)

或delete table tb where 条件

删除内容不删除定义,不释放空间。

关于truncate总结:

truncate table 在功能上与不带 WHERE 子句的 delete语句相同:二者均删除表中的全部行。

但 truncate 比 delete速度快,且使用的系统和事务日志资源少。

delete 语句每次删除一行,并在事务日志中为所删除的每行记录一项。所以可以对delete操作进行roll back

1、truncate 在各种表上无论是大的还是小的都非常快。如果有ROLLBACK命令Delete将被撤销,而 truncate 则不会被撤销。
2、truncate 是一个DDL语言,向其他所有的DDL语言一样,他将被隐式提交,不能对 truncate 使用ROLLBACK命令。
3、truncate 将重新设置高水平线和所有的索引。在对整个表和索引进行完全浏览时,经过 truncate 操作后的表比Delete操作后的表要快得多。
4、truncate 不能触发任何Delete触发器。
5、当表被清空后表和表的索引将重新设置成初始大小,而delete则不能。
6、不能清空父表

sql语句中----删除表数据drop、truncate和delete的用法_网络_weixin_30337157的博客-CSDN博客​blog.csdn.net
e7235f27a7b24687ab8a9160bee89b08.png

误操作执行了一个drop库的sql,如何完全恢复?

如果条件允许,操作前 最好禁止一切服务访问MySQL数据库,这里假设完全禁止访问。

1,手动切割binlog日志,并记录位置,假设这里为009

2,找到之前全备份最后的binlog日志,假设是005

3,用mysqladmin命令将005-008的全部sql分析出来,并删除drop库的语句。

4,将之前的全备数据库导入MySQL

5,将步骤3中分离出来的sql导入MySQL

6,将binlog009删除,再次刷新binlog日志,到此数据库恢复成功。


详述 MySQL 主从复制原理及配置主从的完整步骤。

1,主库 binlog线程,记录所有改变了数据库数据的语句,记录在master的binlog中,

2,从库 IO线程,在使用start slave之后,负责从master上拉取binlog内容,放进自己的relaylog中

3,从库,SQL执行线程,执行relaylog中的SQL

配置步骤

1,主库开启binlog日志功能

2,全备数据库,记录好binlog文件和相应的位置

3,从库上配置和主库的连接信息

4,将全备数据导入从库

5,从库启动 slave

6,在从库上查看同步状态 ,确认同步是否成功


MySQL 如何实现双向互为主从复制,并说明应用场景?

两台数据库都开启binlog日志功能,相互为主从配置

双主的实现方式主要有两种

1,让表的id自增,主1写1,3,5,主2写2,4,6

2,不让表的id自增,web端程序去seq服务取id,写入双主。

双向同步主要应用于解决单一主库写的压力

双主工作场景为高并发写的场景,慎用。


MySQL 如何实现级联同步,并说明应用场景?

第一台数据库开启binlog,并设置 为主服务器,

第二台数据库也开启binglog,设为第一台服务器的从服务器,其他数据库的主服务器。

级联同步主要应用在从库需要做为其它数据库的主库


什么是数据库事务,事务有哪些特性?

数据库事务是指逻辑上的一组sql语句,组成这组操作的各个语句,执行时要么全部成功,要么全部失败

特点:具有原子性、隔离性、持久性、一致性 ACID


MySQL 主从复制故障如何解决?

登陆从库,

1,stop slave,停止同步开关

2,将同步指针向下移动一个

3,start slave 重启同步开关


DB面试题及答案 - 百度文库​wenku.baidu.com MYSQL常用操作笔记_数据库_mzx1281077338的博客-CSDN博客​blog.csdn.net
f375175efb7b4ed4a55bf452a181b0d9.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值