云计算面试题【后期】

前言:

随着年龄的增长生活琐碎的事情、烦心的事情日渐增多,怠慢了更新,
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 查询。数据库复制被用来把事务性查询导

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

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

相关推荐
qq_3903695310 小时前
AWS之混合云
云计算·aws
国际云,接待10 小时前
微软云注册被阻止怎么解决?
服务器·网络·microsoft·云原生·微软·云计算
Cosmoshhhyyy10 小时前
腾讯云配置了国内镜像依然docker search失败
docker·云计算·腾讯云
m0_6948455711 小时前
日本云服务器租用多少钱合适
linux·运维·服务器·安全·云计算
慕木兮人可17 小时前
关于阿里云-云消息队列MQTT的连接和使用,以及SpringBoot的集成使用
spring boot·物联网·mqtt·阿里云·云计算
Akamai中国17 小时前
为何AI推理正推动云计算从集中式向分布式转型
人工智能·云原生·云计算·边缘计算
数据与人工智能律师20 小时前
当机床开始“思考”,传统“制造”到“智造”升级路上的法律暗礁
大数据·网络·算法·云计算·区块链
wb1891 天前
流编辑器sed
运维·笔记·ubuntu·云计算
qq_390369531 天前
AWS Well-Architected Framework详解
云计算·aws