Mysql面试知识点总结(进阶篇)
来源:SegmentFault
时间:2023-02-24 20:21:41 434浏览 收藏
来到golang学习网的大家,相信都是编程学习爱好者,希望在这里学习数据库相关编程知识。下面本篇文章就来带大家聊聊《Mysql面试知识点总结(进阶篇)》,介绍一下MySQL,希望对大家的知识积累有所帮助,助力实战开发!
上一篇主要介绍一些基础的mysql知识点,这一篇我们介绍一下mysql比较重要但在开发中我们程序员很少知道的几个大点(自以为是的观点)。
数据库设计三范式:
- 第一范式:数据库表的每一列都是不可分割的原子数据项,即列不可拆分。
- 第二范式:建立在第一范式的基础上,要求数据库表中的每个实例或记录必须是可以唯一被区分的,即唯一标识。
- 第三范式:建立在第二范式的基础上,任何非主属性不依赖与其他非主属性,即引用主键。
视图
视图是虚拟表,并不储存数据,只包含定义时的语句的动态数据。
create view view_name as sql查询语句
存储过程
一条或多条sql语句集合,其优点为(浓缩:简单/安全/高性能):
- 存储过程能实现较快的执行速度
- 存储过程允许标准组件是编程。
- 存储过程可以用流程控制语句编写,有很强的灵活性,可以完成复杂的判断和较复杂的运算。
- 存储过程可被作为一种安全机制来充分利用。
- 存储过程能够减少网络流量
delimiter 分隔符 create procedure|proc proc_name() begin sql语句 end 分隔符 delimiter ; --还原分隔符,为了不影响后面的语句的使用 默认的分隔符是;但是为了能在整个存储过程中重用,因此一般需要自定义分隔符(除\外) show procedure status like ""; --查询存储过程,可以不适用like进行过滤 drop procedure if exists;--删除存储过程
存储过程和函数的区别?
相同点:存储过程和函数都是为了可重复的执行操作数据库的 sql 语句的集合。 1)存储过程和函数都是一次编译,就会被缓存起来,下次使用就直接命中已经编译好的 sql 语句,不需要重复使用。减少网络交互,减少网络访问流量。 不同点:标识符不同,函数的标识符是 function,存储过程是 proceduce。 1)函数中有返回值,且必须有返回值,而过程没有返回值,但是可以通过设置参数类型(in,out)来实现多个参数或者返回值。 2)存储函数使用 select 调用,存储过程需要使用 call 调用。 3)select 语句可以在存储过程中调用,但是除了 select..into 之外的 select 语句都不能在函数中使用。 4)通过 in out 参数,过程相关函数更加灵活,可以返回多个结果。
触发器
在对表数据进行变动的时候进行具体的操作,有六种,分别为增删改的前后操作。
create trigger trigger_name ALTER|BEFORE select|update|delete on 表 for each row trigger_stmt
重点:
- 只有表才支持触发器,视图和临时表都不支持
- 触发器不支持更新和覆盖,修改必须先删除然后创建
分区表
分区表是将大表的数据分成称为分区的许多小的子集,常见分区类型:Range、List、Hash、Key
查看是否支持分区表 show plugins 如果有partition就说明支持 在创建表时字符集后增加 partition by 分区类型(字段) partitions 4; 添加分区 alter table 表 add partition (partition p4 values less than(2018))
交换分区对数据进行归档
条件:mysql>=5.7 结构相同 归档到的数据表一定要是非分区表 非临时表,不能有外键约束 归档引擎要是archive,可以是innodb,但归档引擎占用空间更小,但只能是查询操作 删除分区:alter table 分区表 drop partition 分区名 归档分区:alter table 分区表 exchange partition 分区名 with table 归档表
- RANGE 分区:基于属于一个给定连续区间的列值,把多行分配给分区。
partition by RANGE(字段)( partition p0 VALUES LESS THAN(10000),...PARTITION p3 VALUES
LESS THAN MAXVALUE);不包括上限
- LIST 分区:类似于按 RANGE 分区,区别在于 LIST 分区是基于列值匹配一个离散值集合中的某个 值来进行选择。
partition by list(字段)(partition p0 values in (x,x,x,x)...);
- HASH 分区:基于用户定义的表达式的返回值来进行选择的分区,该表达式使用将要插入到表中的 这些行的列值进行计算。这个函数可以包含MySQL 中有效的、产生非负整数值的任何表达式。
partition by hash(字段) partitions 4( PARTITION p0, PARTITION p1, PARTITION p2, PARTITION p3 );
- KEY 分区:类似于按 HASH 分区,区别在于 KEY 分区只支持计算一列或多列,且 MySQL 服务器提供其自身的哈希函数。必须有一列或多列包含整数值。
partition by hash(字段) partitions 4( PARTITION p0, PARTITION p1, PARTITION p2, PARTITION p3 );
日志
Mysql主要有四种日志文件:
错误日志:记录启动,运行或者停止 mysql 时出现的问题; 查询日志:记录所有msyql的活动 二进制日志:记录更新过数据的所有语句 缓慢查询日志:记录查询缓慢的任何查询
Archive引擎
这是一个只用于数据插入和查询的引擎,其特点为:
- 只能对数据进行插入和查询
- 不支持索引
- 不支持事务
- 存储数据占用空间更小
STRAIGHT_JOIN
在对多表连接的查询中, MySQL优化器要确定以谁为驱动表,也就是说以哪个表为基准,在处理此类问题时,MySQL优化器采用了简单粗暴的解决方法:哪个表的结果集小,就以哪个表为驱动表, 使用STRAIGHT_JOIN可以指定以左表为驱动表。
终于介绍完啦!小伙伴们,这篇关于《Mysql面试知识点总结(进阶篇)》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~golang学习网公众号也会发布数据库相关知识,快来关注吧!
声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
-
499 收藏
-
244 收藏
-
235 收藏
-
157 收藏
-
101 收藏
最新阅读
更多>
-
176 收藏
-
258 收藏
-
367 收藏
-
111 收藏
-
121 收藏
-
107 收藏
课程推荐
更多>
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 立即学习 542次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 立即学习 507次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 立即学习 497次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 立即学习 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 立即学习 484次学习
评论列表
-
- 无情的白猫
- 太详细了,收藏了,感谢老哥的这篇技术贴,我会继续支持!
- 2023-05-02 09:12:29
-
- 复杂的店员
- 这篇博文真及时,好细啊,写的不错,已加入收藏夹了,关注作者了!希望作者能多写数据库相关的文章。
- 2023-04-30 13:57:06
-
- 幸福的野狼
- 真优秀,一直没懂这个问题,但其实工作中常常有遇到...不过今天到这,看完之后很有帮助,总算是懂了,感谢作者分享文章!
- 2023-04-09 20:06:40
-
- 高兴的太阳
- 太全面了,已收藏,感谢作者的这篇文章内容,我会继续支持!
- 2023-04-05 02:04:30
-
- 开放的宝马
- 很有用,一直没懂这个问题,但其实工作中常常有遇到...不过今天到这,帮助很大,总算是懂了,感谢作者分享博文!
- 2023-04-01 02:07:56
-
- 细心的红酒
- 这篇文章内容真是及时雨啊,博主加油!
- 2023-03-30 08:23:08
-
- 稳重的鸡翅
- 这篇博文出现的刚刚好,太详细了,很棒,码起来,关注作者了!希望作者能多写数据库相关的文章。
- 2023-03-29 14:22:40