MySQL 55题及答案【八】

news/2024/12/5 12:55:15/

1.数据库三范式是什么?

1. 第一范式(1NF):字段具有原子性,不可再分。(所有关系型数据库系

统都满足第一范式数据库表中的字段都是单一属性的,不可再分)

2. 第二范式(2NF)是在第一范式(1NF)的基础上建立起来的,即满足

第二范式(2NF)必须先满足第一范式(1NF)。要求数据库表中的每

个实例或行必须可以被惟一地区分。通常需要为表加上一个列,以存储

各个实例的惟一标识。这个惟一属性列被称为主关键字或主键。

3. 满足第三范式(3NF)必须先满足第二范式(2NF)。简而言之,第三

范式(3NF)要求一个数据库表中不包含已在其它表中已包含的非主关

键字信息。 >所以第三范式具有如下特征: >>1. 每一列只有一个

值 >>2. 每一行都能区分。 >>3. 每一个表都不包含其他表已经包含

的非主关键字信息。

2.有哪些数据库优化方面的经验?

1. 用 PreparedStatement, 一般来说比 Statement 性能高:一个 sql

发给服务器去执行,涉及步骤:语法检查、语义分析, 编译,缓存。

2. 有外键约束会影响插入和删除性能,如果程序能够保证数据的完整性,

那在设计数据库时就去掉外键。

3. 表中允许适当冗余,譬如,主题帖的回复数量和最后回复时间等

4. UNION ALL 要比 UNION 快很多,所以,如果可以确认合并的两个结

果集中不包含重复数据且不需要排序时的话,那么就使用 UNION

ALL。 >>UNION 和 UNION ALL 关键字都是将两个结果集合并为一

个,但这两者从使用和效率上来说都有所不同。 >1. 对重复结果的处

理:UNION 在进行表链接后会筛选掉重复的记录,Union All 不会去除

重复记录。 >2. 对排序的处理:Union 将会按照字段的顺序进行排

序;UNION ALL 只是简单的将两个结果合并后就返回。

3.请简述常用的索引有哪些种类?

1. 普通索引: 即针对数据库表创建索引

2. 唯一索引: 与普通索引类似,不同的就是:MySQL 数据库索引列的值

必须唯一,但允许有空值

3. 主键索引: 它是一种特殊的唯一索引,不允许有空值。一般是在建表的

时候同时创建主键索引

4. 组合索引: 为了进一步榨取 MySQL 的效率,就要考虑建立组合索引。

即将数据库表中的多个字段联合起来作为一个组合索引。

4.以及在 mysql 数据库中索引的工作机制是什么?

数据库索引,是数据库管理系统中一个排序的数据结构,以协助快速查询、更

新数据库表中数据。索引的实现通常使用 B 树及其变种 B+树

5.MySQL 的基础操作命令:

-1. MySQL 是否处于运行状态:Debian 上运行命令 service mysql

status,在 RedHat 上运行命令 service mysqld status

2. 开启或停止 MySQL 服务 :运行命令 service mysqld start 开启服

务;运行命令 service mysqld stop 停止服务

3. Shell 登入 MySQL: 运行命令 mysql -u root -p

4. 列出所有数据库:运行命令 show databases;

5. 切换到某个数据库并在上面工作:运行命令 use databasename; 进入

名为 databasename 的数据库

6. 列出某个数据库内所有表: show tables;

7. 获取表内所有 Field 对象的名称和类型 :describe table_name;

6.mysql 的复制原理以及流程。

Mysql 内建的复制功能是构建大型,高性能应用程序的基础。将 Mysql 的数据

分布到多个系统上去,这种分布的机制,是通过将 Mysql 的某一台主机的数据

复制到其它主机(slaves)上,并重新执行一遍来实现的。 * 复制过程中一

个服务器充当主服务器,而一个或多个其它服务器充当从服务器。主服务器将

更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环。这些日志

可以记录发送到从服务器的更新。 当一个从服务器连接主服务器时,它通知主

服务器在日志中读取的最后一次成功更新的位置。从服务器接收从那时起发生

的任何更新,然后封锁并等待主服务器通知新的更新。 过程如下 1. 主服务器

把更新记录到二进制日志文件中。 2. 从服务器把主服务器的二进制日志拷贝

到自己的中继日志(replay log)中。 3. 从服务器重做中继日志中的时间,

把更新应用到自己的数据库上。

7.mysql 支持的复制类型?

1. 基于语句的复制: 在主服务器上执行的 SQL 语句,在从服务器上执行

同样的语句。MySQL 默认采用基于语句的复制,效率比较高。 一旦发

现没法精确复制时,会自动选着基于行的复制。

2. 基于行的复制:把改变的内容复制过去,而不是把命令在从服务器上执

行一遍. 从 mysql5.0 开始支持

3. 混合类型的复制: 默认采用基于语句的复制,一旦发现基于语句的无法

精确的复制时,就会采用基于行的复制。

8.mysql 中 myisam 与 innodb 的区别?

1. 事务支持 > MyISAM:强调的是性能,每次查询具有原子性,其执行数

度比 InnoDB 类型更快,但是不提供事务支持。 > InnoDB:提供事

务支持事务,外部键等高级数据库功能。 具有事务(commit)、回滚

(rollback)和崩溃修复能力(crash recovery capabilities)的事务安全

(transaction-safe (ACID compliant))型表。

2. InnoDB 支持行级锁,而 MyISAM 支持表级锁. >> 用户在操作

myisam 表时,select,update,delete,insert 语句都会给表自动

加锁,如果加锁以后的表满足 insert 并发的情况下,可以在表的尾部插

入新的数据。

-3. InnoDB 支持 MVCC, 而 MyISAM 不支持

4. InnoDB 支持外键,而 MyISAM 不支持

5. 表主键 > MyISAM:允许没有任何索引和主键的表存在,索引都是保

存行的地址。 > InnoDB:如果没有设定主键或者非空唯一索引,就会

自动生成一个 6 字节的主键(用户不可见),数据是主索引的一部分,附

加索引保存的是主索引的值。

6. InnoDB 不支持全文索引,而 MyISAM 支持。

7. 可移植性、备份及恢复 > MyISAM:数据是以文件的形式存储,所以

在跨平台的数据转移中会很方便。在备份和恢复时可单独针对某个表进

行操作。 > InnoDB:免费的方案可以是拷贝数据文件、备份

binlog,或者用 mysqldump,在数据量达到几十 G 的时候就相对痛

苦了

8. 存储结构 > MyISAM:每个 MyISAM 在磁盘上存储成三个文件。第一

个文件的名字以表的名字开始,扩展名指出文件类型。.frm 文件存储表

定义。数据文件的扩展名为.MYD (MYData)。索引文件的扩展名

是.MYI (MYIndex)。 > InnoDB:所有的表都保存在同一个数据文件

中(也可能是多个文件,或者是独立的表空间文件),InnoDB 表的大

小只受限于操作系统文件的大小,一般为 2GB。

9.mysql 中 varchar 与 char 的区别以及 varchar(50)中的 50 代表的涵

义?

1. varchar 与 char 的区别: char 是一种固定长度的类型,varchar 则是

一种可变长度的类型.

2. varchar(50)中 50 的涵义 : 最多存放 50 个字节

3. int(20)中 20 的涵义: int(M)中的 M indicates the maximum

display width (最大显示宽度)for integer types. The maximum

legal display width is 255


http://www.ppmy.cn/news/5142.html

相关文章

Qt+C++基本绘图(画线,画圆,矩形, 撤销,重做)

程序示例精选 QtC基本绘图(画线,圆,矩形画线) 如需安装运行环境或远程调试,见文章底部微信名片,由专业技术人员远程协助! 前言 这篇博客针对《QtC基本绘图(画线,画圆,矩形, 撤销&am…

惠普Elite蜻笔记本系统损坏怎么U盘重装教学

惠普Elite蜻笔记本系统损坏怎么U盘重装教学,有用户使用的惠普Elite蜻笔记本系统受到了其他恶意程序的损坏,导致无法正常的开启使用。所以想要去进行电脑系统的重装。那么如何U盘重装电脑系统,一起来看看详细的重装步骤吧。 准备工作&#xff…

【Ctfer训练计划】——(二)

作者名:Demo不是emo 主页面链接:主页传送门创作初心:舞台再大,你不上台,永远是观众,没人会关心你努不努力,摔的痛不痛,他们只会看你最后站在什么位置,然后羡慕或鄙夷座右…

[第十三届蓝桥杯/java/算法]A——排列字母

🧑‍🎓个人介绍:大二软件生,现学JAVA、Linux、MySQL、算法 💻博客主页:渡过晚枫渡过晚枫 👓系列专栏:[编程神域 C语言],[java/初学者],[蓝桥杯] &#x1f4d6…

MySQL中这14个有用的小知识,快学起来吧

前言 我最近用MYSQL数据库挺多的,发现了一些非常有用的小玩意,今天拿出来分享到大家,希望对你会有所帮助。 1.group_concat 在我们平常的工作中,使用group by进行分组的场景,是非常多的。 比如想统计出用户表中&…

ContentProvider的介绍和使用

文章目录ContentProviderContentProvider简介运行时权限Android权限机制详解在程序运行时申请权限访问其他程序当中数据ContentResolver的基本用法读取系统联系人信息创建自己的ContentProvider创建ContentProvider的步骤实现跨程序数据共享ContentProvider 如果我们想要实现跨…

使用 CNN 检测一个人是否戴了口罩

在本文中,我们将使用 CNN (卷积神经网络)和机器学习分类器创建一个检测一个人是否戴着口罩的分类器。它将检测一个人是否戴着口罩。 我们将从头开始学习,我将对每一步进行解释。我需要你对机器学习和数据科学有基本的了解。我已经…

mysql实时监控工具mytop

mysql实时监控工具mytop mytop类似于linux top工具,可以实时监控mysql服务器的性能信息。 安装依赖 yum install -y perl-CPAN# cpan # cpan > install DBI # cpan > install Term::ReadKey # cpan > install DBD::mysql # cpan > exit安装“install…