MySQL面试题2

news/2024/11/24 1:18:26/

1. 数据库三范式是什么

第一范式: 字段具有原子性, 不可再分. (所有关系型数据库系统都满足第一范式数据库表中的字段都是单一属性, 不可再分)

第二范式: 是在第一范式基础上建立起来的, 即满足第二范式必须先满足第一范式. 要求数据库表中的每个实例或行必须可以被唯一区分. 通常需要为表上一个列, 以储存各个实例的唯一标识. 这个唯一属性列为主关键字或主键.

第三范式: 必须先满足第二范式. 简而言之, 第三范式要求一个数据库表不包含在其他表中已包含的非主关键字信息.

所以三范式具有以下特性:

每个列只有一个值.

每一行都能区分.

每一个表都不包含其他表已经包含的非主关键字信息

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

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

唯一索引: 与普通索引类似, 不同的是: MySQL 数据库索引列的值必须唯一, 但允许空值

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

组合索引: 为了进一步榨取 MySQL 的效率, 就要考虑建立组合索引. 即将数据库表中的多个字段联合起来作为一个组合索引.

3. MySQL 的基础操作命令

MySQL 是否处于运行状态: Debian 上运行命令 service mysql status, 在 RedHat 上运行命令 service mysqld status

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

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

4. MySQL 的复制原理及流程

MySQL 内键的复制功能是构建大型、 高性能应用程序的基础. 将 MySQL 的数据分布到多个系统上去, 这种分布的机制, 是通过将 MySQL 的某一台主机的数据复制到其他主机(slaves) 上, 并重新执行一遍来实现的. * 复制过程中一个服务器充当主服务器, 而一个或多个其他服务器充当从服务器. 主服务器将更新写入二进制日志文件, 并维护文件的一个索引以跟踪日志循环. 这些日志可以记录发生到从服务器的更新. 当一个从服务器连接主服务器时, 它通知主服务器在日志中读取的最后一次成功的更新的位置. 从服务器接受从那时起发生的任何更新, 然后封锁并等待主服务器通知新的更新. 

过程如下

  • 主服务器把更新记录到二进制日志文件中
  • 从服务器把主服务器的二进制日志拷贝到自己的中继日志(replay log)中
  • 从服务器重做中继日志中的时间, 把更新应用到自己的数据库上

5. MySQL 支持的复制类型

  • 基于语句的复制: 在服务器上执行的 SQL语句, 在从服务器上执行同样的语句. MySQL 默认采用基于语句的复制, 效率比较高.
  • 基于行的复制: 把改变的内容复制过去, 而不是把命令在从服务器上执行一遍, 从 MySQL5.0 开始支持
  • 混合类型的复制: 默认采用基于语句的复制, 一旦发现基于语句的无法精准的复制时, 就会采用基于行的复制

6. MySQL 中 MyISAM 与InnoDB的区别

  • MyISAM 强调的是性能, 每次查询具有原子性, 其执行速度比 InnoDB 类型更快, 但是不能提供事务支持. InnoDB 提供事务支持, 外部键等高级数据库功能. 具有事务, 回滚和崩溃修复能力的事务安全型表
  • InnoDB 支持行级锁, 而 MyiSAM 支持表计锁. 用户在操作 MyISAM表时, select, update, delete, insert 语句都会给表自动加锁, 如果加锁以后得表满足 insert 并发的情况下, 可以在表的尾部插入新的数据
  • InnoDB 支持 MVCC, 而 MyISAM 不支持
  • InnoDB 支持外键, 而 MyISAM 不支持
  • 表主键: MyISAM 允许没有任何索引和主键的表存在, 索引都是保存行的地址. InnoDB 如果,没有设定主键或者非空唯一索引, 就会自动生成一个6字节的主键.
  • InnodDB 不支持全文索引, 而 MyISAM 支持
  • 可移植性, 备份及回复: MyISAM 数据是以文件的形式存储, 所以在跨平台的数据转移中会很方便. 在备份和恢复时可单独针对某个表进行操作. InnoDB 拷贝的方案可以使拷贝数据文件, 备份 binlog. 或者 mysqldump, 在数据量达到几十G的时候就相对痛苦了
  • 存储结构: 每个 MyISAM 在磁盘上存储成三个文件. 第一个文件的名字以表的名字开始, 扩展名指出文件类型. .frm文件存储表定义. 数据文件扩展名为 .MYD. 索引文件的扩展名为 MYI. InnoDB 表的大小只受限于操作系统文件的大小, 一般为 2GB

7. MySQL中 InnoDB 引擎的行锁是通过加在什么上完成(实现)的

InnoDB 行锁是通过给索引上的索引项加锁来实现的, 这一点 MySQL 与 Oracle 不同, 后者是通过在数据块中对相应数据加锁来实现的. InnodDB 这种行锁实现特点意味着: 只能通过索引条件检索数据.

8. 若一张表中只有一个字段 VARCHAR(N) 类型, utf8 编码, 则 N 最大值为多少?

由于 uft8 的每个字段最多占用3个字节, 而 MySQL 定义行的长度不能超过 65535, 因此 N 的最大值子算方法为: (65535 - 1 - 2) / 3. 减去1是因为实际储存是从第二个字节开始的, 减去2的原因是因为在列表长度存储实际的字符长度.

9. [SELECT *] 和 [SELECT 全部字段] 的2种写法有何优缺点

  • 前者要解析数据字典, 后者不需要
  • 结果输出顺序, 前者与建表列顺序相同, 后者需要改
  • 表字段改名, 前者不需要修改, 后者需要修改
  • 后者可以建立索引进行优化, 前者无法优化
  • 后者的可读性比前者高

10. HAVING 字句和 WHERE 的异同点

  • 语法上, where 用表中列名, having 用 select 结果别名
  • 影响结果范围: where 从表读出数据的行数, having 返回客户端的行数
  • 索引: where 可以使用索引, having 不能使用索引, 只能在临时结果集操作
  • where 后面不能使用聚集函数, having是专门使用聚集函数的


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

相关文章

CSDN隐私政策

发布时间:2019年 7 月 22日 生效时间:2019年 7 月 22日 更新时间:2021年10月26日 隐私政策 CSDN是一个面向中国软件和软件人的综合社区网站,是一个中文IT社区和开发技术服务平台,是为中国的软件开发者、IT从业者及其…

flink_01

尚硅谷大数据项目之Flink (作者:尚硅谷大数据研发部) 版本:V1.12.0 Flink简介 初识FlinkFlink起源于Stratosphere项目,Stratosphere是在2010~2014年由3所地处柏林的大学和欧洲的一些其他的大学共同进行的研究项目,2014年4月Stra…

游戏开发入行大师攻略

版权声明 本文为“优梦创客”原创文章,您可以自由转载,但必须加入完整的版权声明 更多学习资源请加QQ:1517069595或WX:alice17173获取(企业级性能优化/热更新/Shader特效/服务器/商业项目实战/每周直播/一对一指导&…

29个行业106个史上最全数据源汇总(推荐收藏)

一、城市交通 1、高德交通 https://report.amap.com/index.do 提供全国100个城市的交通实时数据,提供非常酷炫、直观的数据可视化呈现,并定期提供专题分析报告与研究。 2、北京城市实验室 https://www.beijingcitylab.com/ 由龙瀛博士首创致力于定量城市…

iqoo的“牛皮”还能吹多大?

宣称“充电10分钟时代”来临的iqoo又开始放“大招”了,在7月19日晚19:30的新品发布会高调宣布iqoo 10系列的发布,将会引领手机进入10分钟即可快速充满电的快充时代。 据悉,iqoo 10搭载骁龙8移动平台并将首发200W超快闪充的iqoo 10是全球首款…

网易蜗牛读书产品分析报告

体验版本:V1.9.58 体验设备:Vivo S1, Android 10 体验时间:2023.01.22 一.调研目的 网易蜗牛读书上线以来口碑爆表,本次调研为了分析产品究竟好在哪里,对于读书类产品来说有何借鉴学习之处。 二&#xff0e…

互联网日报 | 7月20日 星期二 | 华为P50系列7月29日发布;盒马NB事业部成立;FF91量产版开启预订...

‍ ‍ 今日看点 ✦ 阿里巴巴启动史上最大规模校招,45种岗位首次对应届生开放 ✦ 华为官宣7月29日举行旗舰新品发布会,P50系列将亮相 ✦ 百度Apollo Robotaxi广州全面开放试运营,站点多达237个 ✦ 贾跃亭打造的FF91量产版开启预订,…

归纳2018:芯片已先行,5G终端触手可及

https://www.toutiao.com/i6638941635658908174/ 2018-12-25 22:44:14 《AI先锋周刊》是—家关注人工智能学术研究、产业生态链、技术落地、边缘应用等维度的先锋电子新媒体。欢迎广大热爱AI的同道中人阅读、评论、转发、投稿,记得点击“关注”,随时获取…