• 云计算面试题【后期】


    前言:

      随着年龄的增长生活琐碎的事情、烦心的事情日渐增多,怠慢了更新,
    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.密码忘了怎么办?
    7. 停止 MySQL 服务程序
    8. 跳过授权表启动 MySQL 服务程序 skip-grant-tables
    9. 重设 root 密码(更新 user 表记录)
    10. 以正常方式重启 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 查询。数据库复制被用来把事务性查询导
    致的变更同步到集群中的从数据库。 当然,主服务器也可以提供查询服务。使用读写分离最大
    的作用无非是环境服务器压力。

  • 相关阅读:
    审计智能合约的成本是多少?如何审计智能合约?
    lvs+keepalived
    PIE-engine 教程 ——利用NDWI指数Landsat8影像计算2013—2021年水域面积计算(海口市为例)
    基于Java毕业设计影城票务管理系统源码+系统+mysql+lw文档+部署软件
    labelImg
    VSCode(Visual Studio Code)扩展及缓存占用C盘空间问题的解决
    大二学生JavaScript实训大作业——动漫秦时明月7页 期末网页制作 HTML+CSS+JavaScript 网页设计实例 企业网站制作
    【多线程】线程安全
    程序员导航站
    数据库事务
  • 原文地址:https://blog.csdn.net/qq_43417559/article/details/136234430