CS-Notes/notes/面经/MySQL 经典面试题 - 王守昌 - 博客园.txt

218 lines
7.1 KiB
Plaintext
Raw Normal View History

2018-02-22 14:47:22 +08:00
Keven King
编程人生
随笔 - 91, 文章 - 0, 评论 - 11, 引用 - 0
MySQL 经典面试题
MySQL 面试 1 存储过程
什么是存储过程
存储过程是一些编译好的SQL语句
因为系统在调用SQL的时候比较浪费时间所以之前先将一些基本的额SQL语句代码进行编译对单表或多表的增删改查然后再给代码取一个名字在需要这个功能时去调用它就可以了。
优缺点
存储工程是编译后的代码 效率高
存储过程代替SQL语句降低网络通信
在一定的程度确保数据安全
2 索引
索引是什么
索引是对数据库中一或多个列值的排序,帮助数据库高效获取数据的数据结构
假如我们用类比的方法,数据库中的索引就相当于书籍中的目录一样,当我们想找到书中的摸个知识点,我们可以直接去目录中找而不是在书中每页的找,但是这也抛出了索引的一个缺点,在对数据库修改的时候要修改索引到导致时间变多。
几个基本的索引类型 普通索引 唯一索引 主键索引 全文索引
索引优点
加快检索速度
唯一索引确保每行数据的唯一性
在使用索引的过程可以优化隐藏器,提高系统性能
索引缺点
插入删除 修改 维护速度下降
占用物理和数据空间
3 事务
事务的作用
事务Transaction是并发控制的基本单位。事务就是一系列的操作这些操作要么都执行要么都不执行。
事务具有以下4个基本特征
Atomic原子性 事务中的一系列的操作要么都完成,要么全部失败
Consistency一致性 一个成功的事务应该讲数据写入的到数据库,否则就要回滚到最初的状态
Isolation隔离性 并发访问和修改的duli
Durability持久性 事务结束应该讲事务的处理结构存储起来
事务的语句
开始事物BEGIN TRANSACTION
提交事物COMMIT TRANSACTION
回滚事务ROLLBACK TRANSACTION
4 数据库中的乐观锁和悲观锁
根据不同类型可以对数据设置不同的锁权限
** 乐观 悲观 锁 主要是作用在并发访问控制**
悲观锁 假定会发生并发冲突,屏蔽任何违反数据完整的操作
乐观锁 假定不会发生冲突,只有在提交操作时检查是否违反数据的完整性
5 drop delete truncate 的区别
三者都是 删除 的意思,但是三者个有些区别
delete和truncate只删除表的数据不删除表的结构
速度 drop > truncate > delete
想删除部分数据时, delete 删除时要带上where语句
保留表而想删除所有的数据时用 truncate
6 超键 候选键 主键 外键 区别
超键 在关系中能唯一标识元组的属性集称为关系模式的超键 ,一个或多个属性组合在一起作为超键。
候选键 最下超键,没有冗余元素的超键
主键 数据库中表中唯一和完整标识的数据列或属性集合。
外键 在一个表中存在另外一个表的主键叫做外键 7视图
定义 视图是一种虚拟表,可以对视图进行增删查改 。可以将一个表多个表组合成一个视图。对视图的修改不影响基本表。 8 数据库三大范式介绍
1NF 字段是最小单元,不可再分
2NF 满足1NF 表中字段必须完全依赖全部主键而并非部分主键
3NF 满足2NF非主键外的所有字段必须互不依赖
4.数据库三范式
第一范式 字段具有原子性,不可再分
第二范式 表中的每列都和主键相关
第三范式 每列都和主键列直接相关,而不是间接相关
好文要顶 关注我 收藏该文
王守昌
关注 - 0
粉丝 - 9
+加关注
0
0
« 上一篇: MongoDB分片原理篇
» 下一篇: 类图关系以及类图之间箭头表示
posted on 2017-06-01 19:32 王守昌 阅读( 3298 ) 评论( 0 ) 编辑 收藏
刷新评论 刷新页面 返回顶部
注册用户登录后才能发表评论,请 登录 或 注册 访问 网站首页。
【推荐】50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
【推荐】Vue.js 2.x 快速入门,大量高效实战示例
【活动】腾讯云 学生专属优惠套餐 多规格选择
【活动】释放技术的想象-解码腾讯云软件架构与应用
最新IT新闻 :
· 京东要用机器人和无人机对抗阿里巴巴 刘强东到底胜算几何?
· TF Lite只是故事的一部分谷歌还一并介绍了新的模型压缩方法
· “大灰狼”远控开发者被曝猝死
· UC浏览器遭Google Play下架被指存在隐私问题
· 董明珠:不反对在国外买技术但真正创造者要自主研发
» 更多新闻...
最新知识库文章 :
· 关于编程,你的练习是不是有效的?
· 改善程序员生活质量的 3+10 习惯
· NASA的10条代码编写原则
· 为什么你参加了那么多培训,却依然表现平平?
· 写给初学前端工程师的一封信
» 更多知识库文章...
导航
博客园
首页
新随笔
联系
订阅
管理
< 2017年11月 >
日 一 二 三 四 五 六
29 30 31 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 1 2
3 4 5 6 7 8 9
公告
昵称: 王守昌
园龄: 2年5个月
粉丝: 9
关注: 0
+加关注
搜索
常用链接
我的随笔
我的评论
我的参与
最新评论
我的标签
随笔分类
git 学习与记录(1)
Hadoop 安装(1)
HTML和CSS(5)
HTTP权威指南读书笔记(1)
Java(3)
java Web 分类 (9)
Java 线程池(2)
JavaScript 学习笔记(5)
Java与设计模式(2)
Linux (17)
Maven 笔记(11)
mongodb 随笔(17)
python 入门教程
rabbitmq 安装使用记录
redis 学习随笔(3)
thinking in java 笔记(1)
数据结构与算法(1)
随笔档案
2017年10月 (4)
2017年9月 (10)
2017年8月 (5)
2017年6月 (1)
2017年5月 (15)
2017年4月 (19)
2017年3月 (8)
2016年12月 (29)
最新评论
1. Re:如何高效学习读书笔记
@王守昌谢谢。...
--北落师门α
2. Re:如何高效学习读书笔记
@北落师门α用markdown编辑器上编辑然后直接复制到博客园的编辑框中...
--王守昌
3. Re:如何高效学习读书笔记
@退后一步是人生谢谢...
--王守昌
4. Re:如何高效学习读书笔记
问下,笔记用什么记录的。
想请教下怎么整理的这么整齐。什么软件上先写好,再粘到园子里的吧。
--北落师门α
5. Re:如何高效学习读书笔记
楼主好总结!!!
--退后一步是人生
阅读排行榜
1. eclipse配置maven + 创建maven项目(14634)
2. 在java中使用MongoDB数据库(4427)
3. MySQL 经典面试题(3299)
4. maven web 项目中启动报错 Java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet(2843)
5. 自己把jar包添加到maven仓库中(2157)
评论排行榜
1. 如何高效学习读书笔记(7)
2. 在java中使用MongoDB数据库(2)
3. Maven下载、安装和配置(1)
4. MongoDB的备份和部署 高级功能索引,聚合复制,分片(1)
推荐排行榜
1. eclipse配置maven + 创建maven项目(2)
2. MongoDB 分布式架构 复制 分片 适用性范围(1)
3. 将eclipse左边目录结构改为 树形结构(1)
4. 如何高效学习读书笔记(1)
5. MongoDB分片原理篇(1)
Powered by:
博客园
Copyright © 王守昌