关于运维·关于数据库面试题

这篇具有很好参考价值的文章主要介绍了关于运维·关于数据库面试题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、数据库类型

二、数据库引擎

三、mysql数据库类型

四、mysql的约束添加

五、主从复制原理

六、主从方式有几种

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

八、mysql的优化

九、什么是事务的特征

十、数据库读写分离的好处

十一、怎样优化sql语句

十二、mysql的同步方式

十三、mysql的数据备份有几种

希望能够帮助到大家!


引言:明人不说暗话,今天分享几个关于运维·关于数据库的面试题

一、数据库类型

Redis 是非关系型数据库存储格式灵活,可以是key-value(一种以 键值  存储数据的数据库 )的形式,也可以是文本文档图片等形式,读写速度快,可以使用磁盘或者其他储存器作为载体,具有高扩展性,但是不支持事务也不支持sql语句。

Mysql是关系型数据库支持事务,支持sql语句,支持行锁定,可以复杂查询,使用固定表结构,读写速度慢,因为使用的固定表结构导致存储方式不够灵活,对于高并发的读取请求,磁盘性能是很大的瓶颈。

二、数据库引擎

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

myisam:有较高的查询能力,不支持事务;

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

三、mysql数据库类型

整数型;

浮点型;

文本文字类型;

日期时间类型;

枚举型;

集合型。

四、mysql的约束添加

主键PRIMARY KEY (PK):用于唯一的标识表行的数据,定义逐渐约束后,此列不能被重复

自增(AUTO_INCREMENT)标识该字段的值自动增长

空值null:此列不能为空

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

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

五、主从复制原理

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

从库开启两个线程io线程和sql线程io线程会像主库binlog日志文件发起读取请求,读取成功后记录在从库的Realy-log(中继日志文件)当中,sql线程读取Realy-log(中继日志)后如果发现有更新立即把更新的内容在本机的数据库上面执行一遍。

六、主从方式有几种

两种做法:

binlog日志方式:从节点需要手动指定binlog日志的名称、位置或时间

gtid方式:从节点不需要手动指定binlog日志的名称、位置或时间;会自动锁定

七、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、重新做主从:先锁表,导入数据数据+同步,重新做主从

八、mysql的优化

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

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

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

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

九、什么是事务的特征

原子性:指事务是不可拆分的最小单元

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

一致性:事务中的sql语句,要么全部成功,要么全部失败。

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

十、数据库读写分离的好处

分摊服务器的压力,

提高系统的处理效率。

主要分担主服务器的读取压力,间接提高了主库的写入性能,读请求全部发给了从库。

十一、怎样优化sql语句

1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。

2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描

3. 任何地方都不要使用 select * from t ,用具体的字段列表代替“*”,不要返回用不到的任何字段。

4.避免频繁创建和删除临时表,以减少系统表资源的消耗。

十二、mysql的同步方式

「异步复制」:MySQL 默认的复制即是异步的,主库在执行完客户端提交的事务后会立即将结果返给客户端,并不关心从库是否已经接收并处理。这样就会有一个问题,一旦主库宕机,此时主库上已经提交的事务可能因为网络原因并没有传到从库上,如果此时执行故障转移,强行将从提升为主,可能导致新主上的数据不完整

「全同步复制」:指当主库执行完一个事务,并且所有的从库都执行了该事务,主库才提交事务并返回结果给客户端。因为需要等待所有从库执行完该事务才能返回,所以全同步复制的性能必然会收到严重的影响。

「半同步复制」:是介于全同步复制与全异步复制之间的一种,主库只需要等待至少一个从库接收到并写到 Relay Log 文件即可,主库不需要等待所有从库给主库返回 ACK。主库收到这个 ACK 以后,才能给客户端返回 “事务完成” 的确认。

十三、mysql的数据备份有几种

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

物理备份:xtrabackup备份,备份速度慢,文件大,恢复速度快

物理备份又分为3种备份方式:

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

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

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

关于运维·关于数据库面试题,数据库,mysql,linux,运维,服务器文章来源地址https://www.toymoban.com/news/detail-809772.html

希望能够帮助到大家!

到了这里,关于关于运维·关于数据库面试题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MySQL数据库 --- 运维篇

    错误日志是 MySQL 中最重要的日志之一,它记录了当 mysqld 启动和停止时,以及服务器在运行过程中发生任何严重错误时的相关信息。当数据库出现任何故障导致无法正常使用时,建议首先查看此日志。 该日志是默认开启的,默认存放目录 /var/log/,默认的日志文件名为 mysqld

    2024年02月08日
    浏览(101)
  • [运维|数据库] PostgreSQL数据库对MySQL的 READS SQL DATA 修饰符处理

    在 PostgreSQL 中,访问权限通常是通过数据库角色和表级别的权限进行管理,而不需要类似 MySQL 中的 READS SQL DATA 修饰符。 要在 PostgreSQL 中管理数据库对象的访问权限,您可以使用以下 SQL 命令: GRANT :授予用户或角色对表、视图等对象的特定权限。 REVOKE :撤销用户或角色对

    2024年02月07日
    浏览(70)
  • 运维笔记之centos7安装mysql数据库

    如果使用的4.1以上版本的rpm的话,除了import mysql的公钥到个人用户的配置中,还需要import mysql的公钥到RPM的配置中

    2024年02月04日
    浏览(63)
  • 开源数据库MYSQL DBA运维实战 第一章 部署

    数据库管理系统  DBMS    SQL(RDS关系型数据库) DBA  工程师 DDL  数据库定义语言:数据库,表,视图,索引,存储过程,函数 DML  数据库操纵语言:插入数据insert,删除数据delete,更新数据update DQL  数据库查询语言:查询数据selete DCL  数据库控制语言:例如控制用户的访

    2024年02月21日
    浏览(53)
  • 开源数据库MYSQL DBA运维实战 第四章 集群

    mysql复制技术 集群目的 负载均衡:解决高并发 高可用HA:服务可用性 远程灾害:数据有效性 图示 类型 M M-S M-S-S... M-M M-M-S-S 原理图示 图示 概念 1.在主库上把数据更改 (DDL DML DCL) 记录到二进制日志 (BinaryLog) 中。 2.备库/0线程将主库上的日志复制到自己的中继日志 ( Relay Log) 中

    2024年02月21日
    浏览(62)
  • 开源数据库MYSQL DBA运维实战 第三章 备份

    丢/删 1.数据的一致性 2.服务的可用性 3.1物理备份/冷备份 直接复制数据库文件,适用于大型数据库环境,不受存储引擎的限制,但不能恢复到不同的mysql tar,cp,scp 拷贝数据,有点快,缺点服务停止 3.2逻辑备份/热备份 备份的是建表,建库,插入等操作所执行SQL语句(DDL,DML,D

    2024年02月21日
    浏览(98)
  • MySQL运维实战(3.2) 常见数据库连接失败问题排查

    作者:俊达 我们经常会遇到一些数据库连接失败或访问报错的问题。收集并分析具体的报错信息,可以帮助我们迅速定位问题。 1、客户端到服务端的网络是否畅通,服务端端口是否能连通。 使用ping、telnet等工具探测服务端的端口是否能访问。 如果端口不通,要先排除网络

    2024年01月21日
    浏览(59)
  • 开源数据库Mysql_DBA运维实战 (DCL/日志)

      SQL(Structured Query Language 即结构化查询语言) a.DDL语句   数据库定义语言: 数据库,表,视图,索引,存储过程,函数,创建删除ALTER(CREATE DROP ALTER)  b.DML语句 数据库操纵语言: 插入数据INSERT、删除数据DELETE、更新数据UPDATE c.DQL语句   数据库查询语言:查询数据SELECT d.

    2024年02月12日
    浏览(79)
  • 开源数据库Mysql_DBA运维实战 (DDL语句)

    例如:CREATE  DROP ALTER 定义库{                 创建业务数据库: CREAATE DATABASE   ___数据库名___ ;                 数据库名要求{                                         a.区分大小写                                         b.唯一性  

    2024年02月13日
    浏览(53)
  • 开源数据库Mysql_DBA运维实战 (备份与还原)

    备份对于数据库而言是至关重要的。当数据文件发生损坏、MySQL服务出现错误、系统内核崩溃、计算机硬件损坏或者数据被误删等事件时,使用一种有效的数据备份方案,就可以快速解决以上所有的问题。MySQL提供了多种备份方案,包括: 逻辑备份、物理备份、全备份以及增

    2024年02月12日
    浏览(68)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包