Linux运维面试题(三)之数据库管理

news2024/11/19 3:16:23

Linux运维面试题(三)之数据库管理

  • 1. SQL语句
  • 2.集群
    • 主从服务器原理
    • 主从故障切换
    • 单台Mysql达到性能瓶颈时,如何处理
  • 3.索引(软优化)
    • 什么是索引
    • 索引的分类
    • 劣势(优点:效率和减少数据表内排序和随机查询——>顺序查询(已经过排序和去重(合并)))
    • 什么时候需要创建索引
    • 什么时候不需要创建索引
    • 误操作drop语句导致数据库数据破坏,请给出恢复的实际大体步骤
  • 4.Redis
    • 工作原理
    • redis持久化-RDB
    • 如何利用redis对mysql进行性能优化
      • 主主服务器(分摊写压力)
      • 主主备份方式(主主从模式)
      • Amoeba模式
      • Amoeba的配置
      • Redis的处理方式(做交集)
      • Redis和mysql模式

1. SQL语句

  • 在这里插入图片描述
  • 在这里插入图片描述
  • count(*)返回指定匹配条件的行数,like匹配李
  • order by排序方式,desc降序
  • limit2取前两行
  • 在这里插入图片描述
  • 在这里插入图片描述
  • @后登陆数据库的方式,本地登陆(localhost)、远程登录(具体、泛指@),密码
  • 声明两个字段,并对类型做约束。name字符串长度不能超过30
  • 往字段的某一位置插入哪些值
  • 在这里插入图片描述
  • 2.3.停止服务、提前备份
  • 在这里插入图片描述
  • 查看,改变字段类型,查看表的结构信息
  • 在这里插入图片描述
  • 字段类型
  • 在这里插入图片描述
  • 在这里插入图片描述
  • 但凡指定用户,必须指明用户类型;授权用户所有权限给at管理aa表的al字段
    在这里插入图片描述

2.集群

  • (1)MYSQL 一主多从,主库宕机,如何合理切换到从库,其他从库如何处理?

主从服务器原理

在这里插入图片描述
技术点:bin-log二进制日志
开启主服务器的bin-log日志记录(数据增删改授权等,对数据库进行数据修改)功能,将主服务器的bin-log日志传到从服务器,从服务器根据日志内容(均执行一遍)将数据还原到本地。
主从(身份声明,授权允许)服务器:
主服务器负责接收用户的写入和用户的查询,从服务器备份主服务器的数据。
从服务器主动把主服务器上的数据同步到本地(备份备用)

  • 连接线程、解析线程。
  • 一主一从、一主多从

主从故障切换

  • MYSQL一主多从,主库宕机,如何合理切换到从库,其它从库如何处理
  • 登陆所有从库查看post信息,使用POST最大(从主同步的数据更多更完整)的做为新的主库,然后将从库提升为新的主库,登陆从库(新的主库)执行stop slave
    修改my.cnf配置文件,开启bin-log并重新启动数据库服务,登录数据库执行reset master,show master status\G;查看主库信息,最后创建授权同步用户与权限和网站使用数据库的用户与权限,最后修改对应服务器的IP地址等信息
    登录其他从库,执行change master操作,查看同步状态。
  • 在这里插入图片描述

单台Mysql达到性能瓶颈时,如何处理

  • 数据库代理工具:Amoeba(反向代理、转发中间件)
    Amoeba致力于MySQL的分布式数据库前端代理层,它主要在应用层访问Mysql的时候充当sql路由功能,专注于分布式数据库代理层(Database Proxy)开发。具有负载均衡(分配主从服务器任务分配算法)、高可用性、SQL、过滤、读写分离(主:插入更新,从:查询操作,降低主服务器负载)、可路由相关的到目标数据库、可并发请求多台数据库合并结果。通过Amoeba你能够完成多数据源的高可用、负载均衡、数据切片的功能。
  • 横纵向扩展。纵向扩展:增加配件来提升单台服务器性能;横向扩展:一台——》多台(较好)
  • 在这里插入图片描述
    在这里插入图片描述

3.索引(软优化)

  • MYSQL什么时候创建索引

什么是索引

  • 索引本质是数据结构,(创建好新表)排好序的快速查找数据结构,可以提高查找效率
    (词典目录)
    数据分身之外,数据库还维护着一个满足特定查找算法的数据结构,这些数据结构可以在这些数据结构的基础上实现高级查找算法,这种数据结构就是索引

索引的分类

  • 主键索引
  • 单值索引 一个索引只包含单个列,一个表可以有多个单列索引。如果字段会被经常用来检索就可以用单值索引
  • 复合索引 一个索引包含多个列,如电话簿上姓+名字。最好不超过5个字段
  • 唯一索引 所有列的值必须唯一,但是允许有空值
  • 普通索引和唯一索引可以称为辅助索引

劣势(优点:效率和减少数据表内排序和随机查询——>顺序查询(已经过排序和去重(合并)))

  • 实际上索引也是一张表,该表保存了主键与索引字段,并指向实体表的记录,索引列也要是占用空间的。
    在这里插入图片描述
  • 虽然索引大大提高了查询速度,但是会降低更新表的速度,如对表进行INSERT,UPDATE,DELETE。因为更新表示,Mysql不仅要保存数据,还要保存一下索引文件每次更新添加了索引列的字段,都会调整因为更新所带来的键值变化后的索引信息。
    索引只是提高效率的一个因素,如果Mysql有大数据量的表,就需要花时间研究建立最优秀的索引,或优化查询。

什么时候需要创建索引

  • 主键自动建立唯一索引
    频繁作为查询条件的字段应该创建索引
    查询中与其他表关联的字段,外键关系建立索引
    频繁更新的字段不适合创建索引,因为每次更新不单单是更新了记录还会更新索引
    where条件里用不到的字段不创建索引
    单键/组合索引的选择问题,在高并发下倾向创建组合索引
    查询中排序的字段,排序字段若通过索引去访问将大大提高排序速度
    查询中统计或者分组字段(group by)

什么时候不需要创建索引

  • 在这里插入图片描述

误操作drop语句导致数据库数据破坏,请给出恢复的实际大体步骤

  • 手动切割bin-log日志并记好切割好的bin-log日志文件位置,这里假设为009,备份全部bin-log日志
  • 找到之前全备份数据最后备份到的bin-log文件位置并记好位置,这里假设为005
  • 用mysqladmin命令将005到008bin-log文件中的SQL语句分离出来,并找到drop库的语句将其删掉
  • 将之前全备数据导入mysql服务器(005+(005-008)+009)
  • 将步骤3中分离出的SQL语句导入mysql服务器
  • 将009bin-log文件删除,再次刷新bin-log日志,到此数据库已恢复成功

4.Redis

  • 如何保证Redis能永久保存数据(持久化)

工作原理

  • Redis是一个key-value存储系统,它支持的value类型相对较多,包括string、list、set和zset,这些数据都支持push/pop/add/remove及交并补等操作,而且这些操作都是原子性的,在此基础上,redis支持各种不同方式的排序。为了保证效率,数据是缓存在内存中的,redis会周期性的把数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave同步。
  • 与mysql的库表结构不一样
  • 原子性,总核不变,事件修改完整
    在这里插入图片描述
  • 回滚,红递明未接,拿回,保证原子性。
  • 主从备份,保障完整性。

redis持久化-RDB

  • 在Redis运行时,RDB程序将当前内存中的数据库快照保存到磁盘中,当redis需要重启时,RDB程序会通过重载RDB文件来还原数据库。
    在这里插入图片描述
  • 在这里插入图片描述
  • AOF——>mysql的bin-log
  • 在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 对数据进行修改时的操作,避免记录对数据进行重复修改的操作(覆盖式,保留最新一次)。

如何利用redis对mysql进行性能优化

  • 互补关系
  • 在这里插入图片描述
  • if语句是否有符合相应条件的语句,Redis没有则向Amoeba发送请求,由于Amoeba是关系型数据库的代理服务器,A发起查询操作,找到结果后,A将结果返回给用户并向redis插入一份,并设置TTL值——有效时间值:redis用来做mysql的缓存,原始关系数据库更新,若无更新,用户优先查缓存而查不到原始数据,以此使缓存和关系数据库数据保持一致性。
  • 在这里插入图片描述

主主服务器(分摊写压力)

  • 在这里插入图片描述

主主备份方式(主主从模式)

  • 在这里插入图片描述
  • 在同一个设备启用两个不同的mysql程序

Amoeba模式

在这里插入图片描述

Amoeba的配置

  • 在这里插入图片描述
  • 上为A信息,下为连接的资源池信息

Redis的处理方式(做交集)

  • 在这里插入图片描述

Redis和mysql模式

  • 在这里插入图片描述
  • 在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/826321.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

VMWare虚拟系统上网设置及VMWare虚拟机三种工作模式详解

很多网友安装了VMWare虚拟机,但是在虚拟机上网问题上却卡住了。要想虚拟机上网,首先让我们了解一下VMWare虚拟机三种工作模式。现在,让我们一起走近VMWare的三种工作模式。 理解三种工作模式 …

商海风云起 张俪高瀚宇上演巅峰对决《越过山丘》登陆湖北卫视

彩虹与风雨共生,机遇与挑战并存。由沈煜杰执导,张俪、高瀚宇、蒋冰、周奇奇、柳小海、陈牧扬、张杨智子领衔主演的都市励志情感剧《越过山丘》,将于今晚(8月2日)19:30起,登陆湖北卫视长江剧场。 电视剧《越…

Python系统学习1-2

目录 一、硬件 二、软件:程序文档 三、基础知识 四、python执行过程 五、Pycharm使用技巧 一、硬件 计算机五大部件:运算器,存储器,控制器、输入设备,输出设备。 运算器和控制器 集成在CPU中。 存储&#xff1a…

省份数量(力扣)深度优先 JAVA

有 n 个城市,其中一些彼此相连,另一些没有相连。如果城市 a 与城市 b 直接相连,且城市 b 与城市 c 直接相连,那么城市 a 与城市c 间接相连。 省份 是一组直接或间接相连的城市,组内不含其他没有相连的城市。 给你一个 …

python项目开发案例集锦,python项目案例代码

这篇文章主要介绍了python项目开发案例集锦(全彩版),具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获,下面让小编带着大家一起了解一下。 前言 22个通过Python构建的项目,以此来学习Python编程。 ① 骰…

2023年华数杯建模思路 - 案例:随机森林

## 0 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 1 什么是随机森林? 随机森林属于 集成学习 中的 Bagging(Bootstrap AGgregation 的简称) 方法。如果用图来表示他们之…

vue 3.0 + element-ui MessageBox弹出框的 让文本框显示文字 placeholder

inputPlaceholder:请填写理由, 方法实现如下: this.$prompt(, 是否确认?, { confirmButtonText: 确定, cancelButtonText: 取消, inputPlaceholder:请填写理由, }).then(({ value }) > { if(value null || value ""){ Message({message: 请填…

贝塞尔曲线

贝塞尔曲线于 1962 年,由法国工程师皮埃尔贝济埃(Pierre Bzier)所广泛发表,他运用贝塞尔曲线来为汽车的主体进行设计,贝塞尔曲线最初由保尔德卡斯特里奥于1959年运用德卡斯特里奥算法开发,以稳定数值的方法求出贝塞尔曲…

Centos7 安装yum

1、检查主机名和网络并且配置/etc/hosts文件 查看主机名:hostname 查看ip :ifconfig vi /etc/hosts//添加把主机名和IP配置进去hosts文件192.18.56.111 orcale12c2、关闭防火墙 systemctl status firewalld.service//检查防火墙状态 暂时关闭防火墙,下…

零售行业提高效率的有效技巧!赶紧get

在当今快节奏和数字化的时代,零售业正经历着深刻的变革和创新。新零售模式的兴起正以前所未有的速度改变着传统零售的面貌。其中,自动售货机作为新零售模式的重要代表之一,正以其便捷、高效、数字化的特点,成为越来越多消费者喜爱…

怎么查看企业的征信报告

一、企业征信报告是什么? 企业征信报告是对企业信用状况、财务状况和经营状况等信息进行综合评估的重要工具,为合作伙伴、供应商、投资者等提供了重要的参考并做出明智的决策。企业信用报告记录了企业的信用记录、债务情况以及过往的经营表现等&#xf…

阿里云AK创建

要在阿里云上创建 Access Key(AK),您需要按照以下步骤进行操作: 登录到阿里云控制台([https://www.aliyun.com/?utm_contentse_1014243503))。 点击右上方的主账号,点击“AccessKey管理”。 …

Linux6.31 Kubernetes 部署

文章目录 计算机系统5G云计算第二章 LINUX Kubernetes 部署一、二进制搭建 Kubernetes v1.201.操作系统初始化配置2.部署 etcd 集群3.Kubernetes 集群架构与组件4.部署 Master 组件5.部署 Worker Node 组件6.部署 CNI 网络组件——部署 flannel7.部署 CNI 网络组件——部署 Cal…

(自控原理)自动控制的分类与基本要求

一、分类 1、线性连续控制系统 2、非线性控制系统 判断是时变时不变看的是系数,判断线性还是非线性看的是变量 二、基本要求 三、自动控制的分析方法

Win10 拖动文件从文件夹里复制到桌面时出现黑屏资源管理器重启复制失败

环境: Win10 专业版 联想E14笔记本 问题描述: 在文件移动复制时,从文件夹拖拽复制到桌面时,会卡顿,电脑黑屏闪一下,资源管理器重启,复制失败 解决方案: 1.sfc /scannow&#x…

【CSS】圆形放大的hover效果

效果 index.html <!DOCTYPE html> <html><head><title> Document </title><link type"text/css" rel"styleSheet" href"index.css" /></head><body><div class"avatar"></…

cc2652在使用过程中的一些注意事项

可能不只是cc2652有这些坑&#xff0c;估计cc26xx系列都存在。 CCS的预编译宏配置位置 时钟获取 时钟获取__STATIC_INLINE uint32_t SysCtrlClockGet( void )在sys_ctrl.h中&#xff0c;sys_ctrl.h没有在工程路径下面&#xff0c;在其sdk中 节拍时间获取 ICall_getTicks(); …

整流二极管型号汇总,超齐全

整流二极管是什么二极管&#xff1f;查看资料可知&#xff0c;整流二极管是一种将交流电能转变为直流电能的半导体器件&#xff0c;可见整流二极管的作用重在“整流”。整流二极管主要用于各种低频半波整流电路&#xff0c;如需达到全波整流需连成整流桥使用。近日&#xff0c;…

pandas read excel 更改string列为时间类型

设想我们有如下一个excel文件 我们都知道上面那个时间列其实是string类型&#xff0c;因此在用pandas做时间校验的时候会不通过&#xff0c;我们可以在read_excel的时候&#xff0c;指定这一列做转换 import pandas as pd from datetime import datetime, timedelta import n…

【AltWalker】模型驱动:轻松实现自动化测试用例的生成和组织执行

目录 模型驱动的自动化测试 优势 操作步骤 什么是AltWalker&#xff1f; 安装AltWalker 检查是否安装了正确的版本 牛刀小试 创建一个测试项目 运行测试 运行效果 在线模型编辑器 VScode扩展 本地部署 包含登录、选择产品、支付、退出登录的模型编写 模型效果 1…