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.数据库三范式
第一范式 字段具有原子性,不可再分
第二范式 表中的每列都和主键相关
第三范式 每列都和主键列直接相关,而不是间接相关
MySQL 经典面试题的更多相关文章
- 数据库MySQL经典面试题之SQL语句
数据库MySQL经典面试题之SQL语句 1.需要数据库表1.学生表Student(SID,Sname,Sage,Ssex) --SID 学生编号,Sname 学生姓名,Sage 出生年月,Ssex 学 ...
- 面试BAT前先搞定这18道MySQL经典面试题(含答案解析)
一.MySQL的复制原理以及流程 (1)复制基本原理流程 1. 主:binlog线程——记录下所有改变了数据库数据的语句,放进master上的binlog中: 2. 从:io线程——在使用start ...
- mysql经典面试题
数据库优化:这个优化法则归纳为5个层次:1. 减少数据访问(减少磁盘访问)2. 返回更少数据(减少网络传输或磁盘访问)3. 减少交互次数(减少网络传输)4. 减少服务器CPU开销(减少CPU及内存开销 ...
- mysql经典面试题之学生成绩表
需要数据库表1.学生表 Student(SID,Sname,Sage,Ssex) --SID 学生编号,Sname 学生姓名,Sage 出生年月,Ssex 学生性别 2.课程表 Course(CID, ...
- 100道MySQL数据库经典面试题解析(收藏版)
前言 100道MySQL数据库经典面试题解析,已经上传github啦 https://github.com/whx123/JavaHome/tree/master/Java面试题集结号 公众号:捡田螺 ...
- php经典面试题与答案(转先锋教程网)
php经典面试题与答案 时间:2016-02-29 16:06:23来源:网络 导读:php经典面试题与答案,包括腾讯php面试题.百度php面试题.新浪php面试题等 php面试题及答案 1,禁 ...
- Linux 经典面试题
[Linux 经典面试题] 1. 在Linux系统中,以 文件 方式访问设备 . 2. Linux内核引导时,从文件 /etc/fstab 中读取要加载的文件系统. 3. Linux文件系统中每个文 ...
- 经典面试题:从 URL 输入到页面展现到底发生什么?
前言 打开浏览器从输入网址到网页呈现在大家面前,背后到底发生了什么?经历怎么样的一个过程?先给大家来张总体流程图,具体步骤请看下文分解! 本文首发地址为GitHub 博客,写文章不易,请多多支持与关注 ...
- MySQL开发面试题
……继上一篇MySQL的开发总结之后,适当的练习还是很有必要的…… SQL语法多变,不敢保证唯一,也不敢保证全对,如果错误欢迎指出,即刻修改. 一.现有表结构如下图 TABLENAME:afinfo ...
随机推荐
- linux虚拟机ip地址更改
在虚拟机模式下 进入 cd /etc/sysconfig/network-scripts/ vim ifcfg-eth0 编辑 IPADDR=新的内网ip PREFIX = 24 (对应255.25 ...
- 前后端分离(手)-- 使用mock.js(好样的)
## 前言: 本篇博文昨天七夕写的,一天下来被虐得体无完肤,苦逼的单身狗只能学习,对!我爱学习,关掉朋友圈,并写了一篇博文发泄发泄.这次写mock.js的使用,能使前后端分离,分离,分离,重要的是说三 ...
- ID3算法(2)
今天,我来讲解的是决策树.对于决策树来说,主要有两种算法:ID3算法和C4.5算法.C4.5算法是 对ID3算法的改进.今天主要先讲ID3算法,之后会讲C4.5算法和随机森林等. Contents ...
- JavaScript+html5 canvas实现本地截图教程
这篇文章主要介绍了JavaScript+html5 canvas实现本地截图教程,对截图功能感兴趣的小伙伴们可以参考一下 最近有时间了解了下html5的各API,发现新浪微博的头像设置是使用canva ...
- c++中find函数的用法
find函数主要实现的是在容器内查找指定的元素,并且这个元素必须是基本数据类型的.查找成功返回一个指向指定元素的迭代器,即元素在容器中的下标,查找失败返回end迭代器. 头文件 #include &l ...
- HTML Input属性
HTML Input 属性 value 属性 value 属性规定输入字段的初始值: readonly 属性 readonly 属性规定输入字段为只读(不能修改): readonly 属性不需要值.它 ...
- mybatis的延迟加载
1. 什么是延迟加载 举个例子: 如果查询订单并且关联查询用户信息.如果先查询订单信息即可满足要求,当我们需要查询用户信息时再查询用户信息.把对用户信息的按需去查询就是延迟加载. 所以延迟加载即先从单 ...
- Cognos报表调度与作业管理
本文针对Cognos的报表调度和作业管理做案例分析.为了测试报表定时调度功能,本文将报表定时输出到指定的归档目录. 1. 测试环境 Cognos V11.0 2. 设置档案文件根目录 Cognos报 ...
- Kafka中操作topic时 Error:Failed to parse the broker info from zookeeper
Kafka中操作topic时 Error: Failed to parse the broker info from zookeeper 1.问题描述 2.问题原因 kafka在启动后 ...
- vue :class的动态绑定
动态绑定class 写在指令中的值会被视作表达式,如javascript表达式,因此v-bind:class接受三目运算: 1 2 3 4 HTML代码: <div :class=" ...