云计算面试题【后期】

前言:

随着年龄的增长生活琐碎的事情、烦心的事情日渐增多,怠慢了更新,
1.什么是数据库

DB.DataBase 数据库:

依照某种数据模型进行组织并存放到存储器的数据集合

DBMS.DataBase Management System -- 数据库管理系统:

用来操纵和管理数据库的大型服务 软件

DBS.DataBase System -- 数据库系统:

即 DB+DBMS ,指带有数据库并整合了数据库管理软件的计算机系统。

2.主流数据库服务软件有哪些?开源且跨平台的数据库软件有哪些?

主流数据库服务软件有:

甲骨文公司 Oracle

IBM DB2

微软 SQL Server

美国 Sybase 公司 Sybase

加州大学伯克利分校计算机系开发的 PostgreSQL

开源且跨平台的数据库软件有:

MySQL、PostgreSQL:开源且跨平台

Oracle、DB2:跨平台不开源

SQL Server:不跨平台不开源

Sybase:跨平台不开源

3.MySQL 的特点及应用

主要特点

-- 适用于中小规模、关系型数据库系统

-- 支持 Linux/Unix 、 Windows 等多种操作系统

-- 使用 C 和 C++ 编写,可移植性强

-- 通过 API 支持 Python/Java/Perl/PHP 等语言

典型应用环境

-- LAMP 平台,与 Apache HTTP Server 组合

-- LNMP 平台,与 Nginx 组合

4.mysql 服务相关参数有什么?

文件 说明

/etc/my.cnf 主配置文件

/var/lib/mysql 数据库目录

默认端口号 3306

进程名 mysqld

传输协议 TCP

进程所有者 mysql

进程所属组 mysql

5.mysql 操作指令和注意事项?

操作指令类型

-- MySQL 指令:环境切换、看状态、退出等控制

-- SQL 指令:数据库定义 / 查询 / 操纵 / 授权语句

基本注意事项

-- 操作指令不区分大小写(密码、变量值除外)

-- 每条 SQL 指令以 ; 结束或分隔

-- 不支持 Tab 键自动补齐

-- \c 可废弃当前编写错的操作指令

6.库管理命令都有什么?

-- Show databases; // 显示已有的库

-- Use 库名 ; // 切换库

-- Select database(); // 显示当前所在的库

-- Create database 库名 ; // 创建新库

-- Show tables; // 显示已有的表

-- Drop database 库名; // 删除库

7.常见的信息种类

• 数值型:体重、身高、成绩、工资

• 字符型:姓名、工作单位、通信住址

• 枚举型:兴趣爱好、性别

• 日期时间型:出生日期、注册时间

8.(数值型)关于整数型字段

-- 使用 UNSIGNED 修饰时,对应的字段只保存正数

-- 数值不够指定宽度时,在左边填空格补位

-- 宽度仅是显示宽度,存数值的大小由类型决定

-- 使用关键字 ZEROFILL 时,填 0 代替空格补位

-- 数值超出范围时,报错。

9.(数值型)关于浮点型字段

-- 定义格式: float( 总宽度 , 小数位数 )

-- 当字段值与类型不匹配时,字段值作为 0 处理

-- 数值超出范围时,仅保存最大 / 最小值

10.字符类型

• 定长: char( 字符数 )

-- 最大长度 255 字符

-- 不够指定字符数时在右边用空格补齐

-- 字符数断超出时,无法写入数据。

• 变长: varchar( 字符数 )

-- 按数据实际大小分配存储空间

-- 字符数断超出时,无法写入数据。

• 大文本类型: text/blob

-- 字符数大于 65535 存储时使用

11.日期时间类型

• 日期时间, DATETIME

-- 占用 8 个字节

-- 范围: 1000-01-01 00:00:00.000000 ~ 9999-12-31 23:59:59.999999

• 日期时间, TIMESTAMP

-- 占用 4 个字节

-- 范围: 1970-01-01 00:00:00.000000 ~ 2038-01-19 03:14:07.999999

• 日期, DATE

-- 占用 4 个字节

-- 范围: 0001-01-01 ~ 9999-12-31

• 年份, YEAR

-- 占用 1 个字节

-- 范围: 1901~2155

• 时间, TIME

-- 占用 3 个字节

-- 格式: HH:MM:SS

12.时间函数

类型 用途

now() 获取系统当前日期和时间

year() 执行时动态获得系统日期时间

sleep(N) 休眠 N 秒

curdate() 获取当前的系统日期

curtime() 获取当前的系统时刻

month() 获取指定时间中的月份

date() 获取指定时间中的日期

time() 获取指定时间中的时刻

13.枚举类型

• 从给定值集合中选择单个值, ENUM

-- 定义格式: enum( 值 1, 值 2, 值 N)

• 从给定值集合中选择一个或多个值, SET

-- 定义格式: set( 值 1, 值 2, 值 N)

14. 约束条件

• Null 允许为空,默认设置

• NOT NULL 不允许为空 • Key 索引类型

• Default 设置默认值,缺省为 NULL

15. 修改表结构的基本用法

-- ALTER TABLE 表名 执行动作 ;

Add 添加字段

Modify 修改字段类型

Change 修改字段名

Drop 删除字段

Rename 修改表名

16.索引是什么?

-- 索引是对记录集的多个字段进行排序的方法。

-- 类似于书的目录

-- 索引类型包括 :Btree 、 B+tree 、 hash

17.索引优缺点?

• 索引优点

-- 通过创建唯一性索引,可以保证数据库表中每一行数 据的唯一性

-- 可以加快数据的检索速度

• 索引缺点

-- 当对表中的数据进行增加、删除和修改的时候,索引 也要动态的维护,降低了数据的维护

速度

-- 索引需要占物理空间

18.键值类型有几种,分别是什么?

• INDEX :普通索引

• UNIQUE :唯一索引

• FULLTEXT :全文索引

• PRIMARY KEY :主键

• FOREIGN KEY :外键

19.INDEX 普通索引说明?

-- 一个表中可以有多个 INDEX 字段

-- 字段的值允许有重复,切可以赋 NULL 值

-- 经常把做查询条件的字段设置为 INDEX 字段

-- INDEX 字段的 KEY 标志是 MUL

20.primary key 主键注意事项

-- 一个表中只能有一个 primary key 字段

-- 对应的字段值不允许有重复,且不允许赋 NULL 值

-- 如果有多个字段都作为 PRIMARY KEY ,称为复合主 键,必须一起创建。

-- 主键字段的 KEY 标志是 PRI

-- 通常与 AUTO_INCREMENT 连用

-- 经常把表中能够唯一标识记录的字段设置为主键字段

21.foreign key 外键 什么是外键?

-- 让当前表字段的值在另一个表中字段值的范围内选择 。

• 使用外键的条件

-- 表的存储引擎必须是 innodb

-- 字段类型要一致

-- 被参照字段必须要是索引类型的一种 (primary key)

22.简述 MySQL 体系结构的组成,并描述每个组成部分的作用。

主要包括 8 个部分:

连接池:进程数限制、内存检查、缓存检查等。

SQL 接口:用户通过 sql 客户端发过来的命令,由 sql 接口接收,sql 操作(DML 数据操作语

言:查询、修改、升级数据等;DDL 数据定义语言:创建一个新的数据库、新的索引、删除一

个用户等;存储过程、视图触发器。

分析器: 分析查询语句 事务处理 对象访问权限。

优化器: 优化访问路径 、 生成执行树。

缓存和缓冲:保存 sql 查询结果。

存储引擎:用于管理存储的文件系统,将逻辑结构转换为物理结构的程序;不同的存储引擎有

不同的功能和存储方式。

管理工具:备份,恢复,安全,移植,集群等,这些工具一般和文件系统打交道,不需要和

mysql-server 打交道,它们对应的都是命令。

物理存储设备(文件系统)。

23.MySQL 存储引擎

• 作为可插拔式的组件提供

-- MySQL 服务软件自带的功能程序,处理表的处理器

-- 不同的存储引擎有不同的功能和数据存储方式

• 默认的存储引擎

-- MySQL 5.0/5.1 ---> MyISAM

-- MySQL 5.5/5.6 ---> InnoDB

24.Myisam 存储引擎的主要特点

-- 支持表级锁

-- 不支持事务、事务回滚、外键

• 相关的表文件

-- 表名 .frm 、 -- 表名 .MYI -- 表名 .MYD

25.InnoDB 存储引擎主要特点

-- 支持行级锁定

-- 支持事务、事务回滚、支持外键

• 相关的表文件

-- xxx.frm 、 xxx.ibd

-- ibdata1

-- ib_logfile0 -- ib_logfile1

26.MySQL 锁机制

• 锁粒度

-- 表级锁:一次直接对整张表进行加锁。

-- 行级锁:只锁定某一行。

-- 页级锁:对整个页面( MySQL 管理数据的基本存储单 位)进行加锁。

• 锁类型

-- 读锁(共享锁):支持并发读。

-- 写锁(互斥锁、排它锁):是独占锁,上锁期间其他 线程不能读表或写表。

27.数据库事务的事务特性 (ACID)

• Atomic :原子性

-- 事务的整个操作是一个整体,不可分割,要么全部成 功,要么全部失败。

• Consistency : 一致性

-- 事务操作的前后,表中的记录没有变化。

• Isolation :隔离性

-- 事务操作是相互隔离不受影响的。

• Durability :持久性

-- 数据一旦提交,不可改变,永久改变表数据

28.数据导入基本用法和注意事项

• 基本用法

-- LOAD DATA INFILE " 目录名 / 文件名" INTO TABLE 表名 FIELDS TERMINATED BY " 分

隔符" LINES TERMINATED BY "\n";

• 注意事项

-- 字段分隔符要与文件内的一致

-- 指定导入文件的绝对路径

-- 导入数据的表字段类型要与文件字段匹配

-- 禁用 SElinux

29.数据导出基本用法和注意事项

-- SELECT 查询 ... ... INTO OUTFILE " 目录名 / 文件名" FIELDS TERMINATED BY " 分隔

符" LINES TERMINATED BY "\n";

•注意事项

-- 导出的内容由 SQL 查询语句决定

-- 禁用 SElinux

30.增加表记录的格式

格式 1 :

给所有字段赋值

-- INSERT INTO 表名 VALUES

( 字段 1 值, ... ... ,字段 N 值 ) ,

( 字段 1 值, ... ... ,字段 N 值 ) ,

( 字段 1 值, ... ... ,字段 N 值 ) , ... ... ;

格式 2

给指定字段赋值

-- INSERT INTO 表名 ( 字段 1,... ..., 字段 N) VALUES

( 字段 1 值,字段 2 值,字段 N 值 ) ,

( 字段 1 值,字段 2 值,字段 N 值 ) ,

( 字段 1 值,字段 2 值,字段 N 值 ) ,

... ... ;

注意事项

字段值要与字段类型相匹配

对于字符类型的字段,要用双或单引号括起来

依次给所有字段赋值时,字段名可以省略

只给一部分字段赋值时,必须明确写出对应的字段名称

31.查询表记录

语法格式

• 格式 1

ELECT 字段 1, ... ..., 字段 N FROM 表名 ;

• 格式 2

SELECT 字段 1, ... ..., 字段 N FROM 表名 WHERE 条件表达式 ;

• 注意事项

使用 * 可匹配所有字段

指定表名时,可采用 库名 . 表名 的形式

32.更新表记录

语法格式

• 格式 1 ,

更新表内的所有记录

-- UPDATE 表名

SET 字段 1= 字段 1 值 , 字段 2= 字段 2 值 , 字段 N= 字段 N 值 ;

格式 2 ,

只更新符合条件的部分记录

-- UPDATE 表名 SET 字段 1= 字段 1 值 , 字段 2= 字段 2 值 , 字段 N= 字段 N 值 ;

WHERE 条件表达式 ;

33. 注意事项

字段值要与字段类型相匹配

对于字符类型的字段,要用双或单引号括起来

若不使用 WHERE 限定条件,会更新所有记录

限定条件时,只更新匹配条件的记录

34.删除表记录

• 格式 1 ,

仅删除符合条件的记录

-- DELETE FROM 表名 WHERE 条件表达式 ;

• 格式 2, 删除所有的表记录

-- DELETE FROM 表名 ;

35.基本查询条件

数值比较

= 等于 > 、 >= 大于、大于或等于 < 、 <= 小于、小于或等于 != 不等于

字符比较

= 相等

!= 不相等

IS NULL 匹配空

IS NOT NULL 非空

逻辑比较

• 多个判断条件时使用

OR 逻辑或

AND 逻辑与

! 逻辑非

( ) 提高优先级

范围内匹配 / 去重显示

• 匹配范围内的任意一个值即可

In ( 值列表 ) 在...里...

Not in ( 值列表 ) 不在...里...

Between 数字 1 and 数字 2 在...之间...

DISTINCT 字段名 去重显示

36.聚集函数都有哪些?

• MySQL 内置数据统计函数

-- avg( 字段名 ) : 求平均值

-- sum( 字段名 ) :求和

-- min( 字段名 ) : 统计最小值

-- max( 字段名 ) :统计最大值

-- count( 字段名 ) :统计个数

37.常见的 MySQL 管理工具有哪些?

mysql 命令行 跨平台 MySQL 官方 bundle 包自 带

MySQL-Workbench 图形 跨平台 MySQL 官方提供

MySQL-Front 图形 Windows 开源,轻量级客户端软件

phpMyAdmin 浏览器 跨平台 开源,需 LAMP 平台

Navicat 图形 Windows 专业、功能强大,商业版

38.安装 PhpMyAdmin 基本思路是什么?

  1. 安装 httpd 、 mysql 、 php-mysql 及相关包
  2. 启动 httpd 服务程序
  3. 解压 phpMyAdmin 包,部署到网站目录
  4. 配置 config.inc.php ,指定 MySQL 主机地址
  5. 创建授权用户
  6. 浏览器访问、登录使用

39.密码忘了怎么办?

  1. 停止 MySQL 服务程序

  2. 跳过授权表启动 MySQL 服务程序 skip-grant-tables

  3. 重设 root 密码(更新 user 表记录)

  4. 以正常方式重启 MySQL 服务程序

40.简述 MySQL 数据库访问的执行过程。

客户端发出请求。

2)服务器端开辟线程响应客户端请求。

3)客户端发起 sql 语句查询数据库。

4)查询缓存:记录用户的 sql 查询语句,如果查询内容相同,直接从查询缓存回复。

5)如果缓存没有进入分析器。

6)分析器:分析用户命令语法是否正确,将用户的命令进行切片,一个词一个词用空格隔开,

获得用户要查询的表、内容、用户的权限等。

7)优化器:执行路径的选择,生成执行树。(每个 SQL 语句都有很多执行路径,优化的目的就

是在这些执行路径里选择最优的执行路径)。

8)存储引擎:用于管理存储的文件系统,不同的存储引擎有不同的功能和存储方式。

41.GRANT 配置授权用法和注意事项?

• 基本用法

-- GRANT 权限列表 ... ... ON 库名 . 表名

-- TO 用户名 @' 客户端地址 '

-- IDENTIFIED BY ' 密码 '

-- [ WITH GRANT OPTION ];

• 注意事项

-- 当库名 . 表名 为 . 时,匹配所有库所有表 -- 授权设置存放在 mysql 库的 user 表

42.mysql 授权的权限列表分类?

-- all :匹配所有权限

-- SELECT,UPDATE,INSERT ... ...

-- SELECT,UPDATE ( 字段 1, ... ... , 字段 N)

43.mysql 授权的客户端地址方法?

-- % :匹配所有主机

-- 192.168.1.% :匹配指定的一个网段

-- 192.168.1.1 :匹配指定 IP 地址的单个主机

-- %.tarena.com :匹配一个 DNS 区域

-- svr1.tarena.com :匹配指定域名的单个主机

撤销用户权限的格式用法?

• 基本用法 -- REVOKE 权限列表 ON 库名 . 表名 -- FROM 用户名 @' 客户端地址 ';

44.简述 MySQL 数据库中插入、更新、查询、删除表记录的指令格式。

连接到 MySQL 数据库服务器,练习以下表记录操作:

向表中插入记录的语法格式

更新表记录的语法格式

查询表记录的语法格式

删除表记录的语法格式

参考答案

1)向表中插入记录的语法格式

insert (into)表名(字段名列表) values(字段名=值,字段名=值,...);

2)更新表记录的语法格式

update 表名(set) (字段名=值,字段名=值,...) where(条件表达式列表);

3)查询表记录的语法格式

select (字段名列表) (from) 表名 (where) 条件表达式列表;

4)删除表记录的语法格式

delete (from) 表名 (where) ( 条件表达式列表);

45.数据备份策略有那几种?

• 完全备份 -- 备份所有数据(一台服务器、一个库、一张表)

• 增量备份 -- 备份自上一次备份(包含完全备份、差异备份、增量 备份)之后有变化的数据

• 差异备份 -- 备份自上一次完全备份之后有变化的数据

46.逻辑备份及恢复

• 备份操作 -- mysqldump 源库名 > 路径 /xxx.sql

• 恢复操作 -- mysql 目标库名 < 路径 /xxx.sql

47.利用 binlog 恢复数据的基本思路?

-- 使用 mysqlbinlog 提取历史 SQL 操作

-- 通过管道交给 mysql 命令执行

48.常用的 MySQL 备份工具 的缺点?

• 物理备份缺点

-- 跨平台性差

-- 备份时间长、冗余备份、浪费存储空间 •

mysqldump 备份缺点

-- 效率较低,备份和还原速度慢

-- 备份过程中,数据插入和更新操作会被挂起

49.介绍一下 XtraBackup 工具是什么?

• 一款强大的在线热备份工具

-- 备份过程中不锁库表,适合生产环境

-- 由专业组织 Percona 提供(改进 MySQL 分 支)

• 主要含两个组件

-- xtrabackup : C 程序,支持 InnoDB/XtraDB

-- innobackupex :以 Perl 脚本封装 xtrabacku p ,还支持 MyISAM

50 什么是读写分离?

MySQL Proxy 最强大的一项功能是实现"读写分离(Read/Write Splitting)"。基本的原理是

让主数据库处理事务性查询,而从数据库处理 SELECT 查询。数据库复制被用来把事务性查询导

致的变更同步到集群中的从数据库。 当然,主服务器也可以提供查询服务。使用读写分离最大

的作用无非是环境服务器压力。

相关推荐
落笔画忧愁e14 分钟前
实测:利用腾讯云锐驰型 200M 带宽,搭建无门槛高清视频分发系统
云计算·腾讯云
冬天的风滚草2 小时前
揭秘云原生混布资源调度器Koordinator (十五)GPU 信息采集与上报机制
云计算
冬天的风滚草2 小时前
揭秘云原生混布资源调度器Koordinator (十三)GPU 资源管理总览
云计算
冬天的风滚草2 小时前
揭秘云原生混布资源调度器Koordinator (十四)DeviceShare 调度插件详解
云计算
CodeCaptain6 小时前
阿里云ECS上配置Nginx的反向代理
nginx·阿里云·云计算
有谁看见我的剑了?14 小时前
VMware OVF Tool 工具安装学习
云计算
盛夏5201 天前
Docker容器化部署SpringBoot+Vue项目:从零到一在阿里云宝塔面板的实践指南
阿里云·docker·云计算
狐571 天前
2026-01-10-云计算问答题部分整理-期末复习
云计算·期末复习
2401_861277551 天前
中国电信星辰AI大模型有哪些主要功能
人工智能·云计算·软件工程·语音识别
Akamai中国2 天前
基准测试:Akamai云上的NVIDIA RTX Pro 6000 Blackwell
人工智能·云计算·云服务·云存储