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

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.rhkb.cn/news/74509.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java实现5种不同的验证码图片,包括中文、算式等,并返回前端

导入以下依赖 <!--图片验证码--><dependency><groupId>com.github.whvcse</groupId><artifactId>easy-captcha</artifactId><version>1.6.2</version></dependency> 编写controller package com.anXin.user.controlle…

【vue】 Tinymce 富文本编辑器 不想让上传的图片转换成base64,而是链接

前言&#xff1a;最近项目上需要使用富文本编辑器&#xff0c;觉得tinymce很不错就用了&#xff0c;具体怎么在项目中使用参考 【vue】 vue2 中使用 Tinymce 富文本编辑器 【vue】 Tinymce 数据 回显问题 | 第一次正常回显后面&#xff0c;显示空白bug不能编辑 这两天又遇到了…

Open3D(C++) 根据索引提取点云

目录 一、功能概述1、主要函数2、源码二、代码实现三、结果展示本文由CSDN点云侠原创,原文链接。爬虫网站自重,把自己当个人 一、功能概述 1、主要函数 std::shared_ptr<PointCloud> SelectByIn

如何运行疑难解答程序来查找和修复Windows 10中的常见问题

如果Windows 10中出现问题&#xff0c;运行疑难解答可能会有所帮助。疑难解答人员可以为你找到并解决许多常见问题。 一、在控制面板中运行疑难解答 1、打开控制面板&#xff08;图标视图&#xff09;&#xff0c;然后单击“疑难解答”图标。 2、单击“疑难解答”中左上角的…

2023华数杯数学建模竞赛C题思路解析

如下为&#xff1a;2023华数杯数学建模竞赛C题 母亲身心健康对婴儿成长的影响 的思路解析 C题 母亲身心健康对婴儿成长的影响 母亲是婴儿生命中最重要的人之一&#xff0c;她不仅为婴儿提供营养物质和身体保护&#xff0c;还为婴儿提供情感支持和安全感。母亲心理健康状态的不…

O3DE的Pass

Pass介绍 Pass是具有输入和输出的渲染过程。 在最终渲染帧中看到的每个细节都是通过一系列Pass&#xff08;前一个Pass的输出是下一个Pass的输入&#xff09;计算出来的。Pass可以生成图像&#xff08;作为纹理、缓冲区或渲染目标&#xff09;。每个图像都包含关于场景的特定…

CTFSHOW php 特性

web89 数组绕过正则 include("flag.php"); highlight_file(__FILE__);if(isset($_GET[num])){$num $_GET[num]; get numif(preg_match("/[0-9]/", $num)){ 是数字 就输出 nodie("no no no!");}if(intval($num)){ 如果是存在整数 输出 flagecho …

Qt tabwidget中插入widget

一、简单介绍 QT->tabWidget&#xff1a;标签页面。 在ui中通过工具栏自定义拉取控件&#xff0c;其中tabwidget可以可以创建多个标签页面&#xff0c;默认生成两个tab_widget(tab_1/tab_2)。并且可以在ui中右键自由添加控制删除等标签页&#xff0c;切换标签页就是切换widg…

uniapp点击图片放大预览

阐述 有些时候我们在用uniapp显示图片时&#xff0c;有的不宜全部显示到屏幕上&#xff0c;uniapp提供了一个非常好用的api。 实现方式如下&#xff1a; <template><view class"content"><image class"logo" src"/static/images/a.…

SOC FPGA之流水灯设计

一、DS-5简介 Altera Soc EDS开发套件的核心是Altera版ARM Development Studio 5(DS-5)工具包&#xff0c;为SoC器件提供了完整的嵌入式开发环境、FPGA自适应调试和对Altera工具的兼容。 1.1 DS-5 eclipse破解 首先下载破解器 然后进入cmd运行&#xff0c;进入到破解器所在文…

邪恶版ChatGPT来了!

「邪恶版」ChatGPT 出现&#xff1a;每月 60 欧元&#xff0c;毫无道德限制&#xff0c;专为“网络罪犯”而生。 WormGPT 并不是一个人工智能聊天机器人&#xff0c;它的开发目的不是为了有趣地提供无脊椎动物的人工智能帮助&#xff0c;就像专注于猫科动物的CatGPT一样。相反&…

探索 GPTCache|GPT-4 将开启多模态 AI 时代,GPTCache + Milvus 带来省钱秘籍

世界正处于数字化的浪潮中&#xff0c;为了更好理解和分析大量数据&#xff0c;人们对于人工智能&#xff08;AI&#xff09;解决方案的需求呈爆炸式增长。 此前&#xff0c;OpenAI 推出基于 GPT-3.5 模型的智能对话机器人 ChatGPT&#xff0c;在自然语言处理&#xff08;NLP&a…

Windows用户如何将cpolar内网穿透配置成后台服务,并开机自启动?

Windows用户如何将cpolar内网穿透配置成后台服务&#xff0c;并开机自启动&#xff1f; 文章目录 Windows用户如何将cpolar内网穿透配置成后台服务&#xff0c;并开机自启动&#xff1f;前置准备&#xff1a;VS Code下载后&#xff0c;默认安装即可VS CODE切换成中文语言 1. 将…

JavaScript快速入门:ComPDFKit PDF SDK 快速构建 Web端 PDF阅读器

JavaScript快速入门&#xff1a;ComPDFKit PDF SDK 快速构建 Web端 PDF阅读器 在当今丰富的网络环境中&#xff0c;处理 PDF 文档已成为企业和开发人员的必需品。ComPDFKit 是一款支持 Web 平台并且功能强大的 PDF SDK&#xff0c;开发人员可以利用它创建 PDF 查看器和编辑器&…

OpenCV实现高斯模糊加水印

# coding:utf-8 # Email: wangguisendonews.com # Time: 2023/4/21 10:07 # File: utils.pyimport cv2 import PIL from PIL import Image import numpy as np from watermarker.marker import add_mark, im_add_mark import matplotlib.pyplot as plt# PIL Image转换成OpenCV格…

【Spring】AOP切点表达式

文章目录 1、语法2、通配符3、execution4、within5、annotation6、args7、args8、bean9、this10、target11、target12、within13、表达式组合14、补充 1、语法 动作关键词(访问修饰符 返回值 包名.类/接口名 .方法名(参数)异常名) 举例&#xff1a; execution(public User c…

【Golang】基于录制,自动生成go test接口自动化用例

目录 背景 框架 ginkgo初始化 抓包&运行脚本 目录说明 ∮./business ∮./conf ∮./utils ∮./testcase testcase 用例目录结构规则 示例 实现思路 解析Har数据 定义结构体 解析到json 转换请求数据 转换请求 转换请求参数 写业务请求数据 写gotest测试…

Abaqus 导出单元刚度矩阵和全局刚度矩阵

Abaqus 导出单元刚度矩阵和全局刚度矩阵 首次创建&#xff1a;2023.7.29 最后更新&#xff1a;2023.7.29 如有什么改进的地方&#xff0c;欢迎大家讨论&#xff01; 详细情况请查阅&#xff1a;Abaqus Analysis User’s Guide 一、Abaqus 导出单元刚度矩阵 1.生成单元刚度矩阵…

【MySQL】数据类型

上期我们在建表的时候用到了很多数据类型&#xff0c;下面就来详细讲解这些数据类型 目录 一、数据类型分类 二、对于一些数据类型的分析 2.1 数值类型 2.1.1 有符号和无符号类型 2.1.2 bit类型 2.1.3 浮点型 2.1.3.1 float 2.1.3.2 decimal 2.2 字符串类型 2.2.1 ch…

数据结构--基础知识

数据结构是什么&#xff1f; 数据结构是计算机科学中研究数据组织、存储和管理的方法和原则。它涉及存储和操作数据的方式&#xff0c;以便能够高效地使用和访问数据。 相关内容 基本组成 数组&#xff08;Array&#xff09;&#xff1a;数组是一种线性数据结构&#xff0c;…