1207MySQL 面试题
转自http://blog.itpub.net/26435490/viewspace-1133659/
1, mysql的复制原理以及流程。
(1)先问基本原理流程,3个线程以及之间的关联。
(2)再问一致性,延时性,数据恢复。
(3)再问各种工作遇到的复制bug的解决方法
3,问mysql中varchar与char的区别以及varchar(50)中的30代表的涵义。
(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.
(4)为什么MySQL这样设计?
4,问了innodb的事务与日志的实现方式。
(1)有多少种日志
错误日志:记录出错信息,也记录一些警告信息或者正确的信息
慢查询日志:设置一个阈值,将运行时间超过该值的所有SQL语句都记录到慢查询的日志文件中。
二进制日志:记录对数据库执行更改的所有操作
查询日志:记录所有对数据库请求的信息,不论这些请求是否得到了正确的执行。
(2)日志的存放形式
(3)事务是如何通过日志来实现的,说得越深入越好。
隔离性: 通过 锁 实现
原子性、一致性和持久性是通过 redo和undo来完成的。
5,问了mysql binlog的几种日志录入格式以及区别
(1)各种日志格式的涵义
(2)适用场景
(3)结合第一个问题,每一种日志格式在复制中的优劣。
6,问了下mysql数据库cpu飙升到500%的话他怎么处理?
(1) 没有经验的,可以不问
(2)有经验的,问他们的处理思路
7,sql优化。
(1)explain出来的各种item的意义
(2)profile的意义以及使用场景。
(3)explain中的索引问题。
8, 备份计划,mysqldump以及xtranbackup的实现原理,
(1) 备份计划
(2)备份恢复时间
(3)备份恢复失败如何处理
9, 500台db,在最快时间之内重启。
10, 在当前的工作中,你碰到到的最大的mysql db问题是?
11, innodb的读写参数优化
(1)读取参数,global buffer pool以及 local buffer
(2)写入参数
(3)与IO相关的参数
(4)缓存参数以及缓存的适用场景
12 ,请简洁地描述下MySQL中InnoDB支持的四种事务隔离级别名称,以及逐级之间的区别?
SQL标准定义的四个隔离级别为:
read uncommited
read committed
repeatable read
serializable
Read Uncommitted(读取未提交内容)
在该隔离级别,所有事务都可以看到其他未提交事务的执行结果。本隔离级别很少用于实际应用,因为它的性能也不比其他级别好多少。读取未提交的数据,也被称之为脏读(Dirty Read)。
Read Committed(读取提交内容)
这是大多数数据库系统的默认隔离级别(但不是MySQL默认的)。它满足了隔离的简单定义:一个事务只能看见已经提交事务所做的改变。这种隔离级别也支持所谓的不可重复读(Nonrepeatable Read),因为同一事务的其他实例在该实例处理其间可能会有新的commit,所以同一select可能返回不同结果。
Repeatable Read(可重读)
这是MySQL的默认事务隔离级别,它确保同一事务的多个实例在并发读取数据时,会看到同样的数据行。不过理论上,这会导致另一个棘手的问题:幻读(Phantom Read)。简单的说,幻读指当用户读取某一范围的数据行时,另一个事务又在该范围内插入了新行,当用户再读取该范围的数据行时,会发现有新的“幻影” 行。InnoDB和Falcon存储引擎通过多版本并发控制(MVCC,Multiversion Concurrency Control 间隙锁)机制解决了该问题。注:其实多版本只是解决不可重复读问题,而加上间隙锁(也就是它这里所谓的并发控制)才解决了幻读问题。
Serializable(可串行化)
这是最高的隔离级别,它通过强制事务排序,使之不可能相互冲突,从而解决幻读问题。简言之,它是在每个读的数据行上加上共享锁。在这个级别,可能导致大量的超时现象和锁竞争。
对于不同的事务,采用不同的隔离级别分别有不同的结果。不同的隔离级别有不同的现象。主要有下面3种现在:
1、脏读(dirty read):一个事务可以读取另一个尚未提交事务的修改数据。
2、非重复读(nonrepeatable read):在同一个事务中,同一个查询在T1时间读取某一行,在T2时间重新读取这一行时候,这一行的数据已经发生修改,可能被更新了(update),也可能被删除了(delete)。
3、幻像读(phantom read):在同一事务中,同一查询多次进行时候,由于其他插入操作(insert)的事务提交,导致每次返回不同的结果集。
不同的隔离级别有不同的现象,并有不同的锁定/并发机制,隔离级别越高,数据库的并发性就越差,4种事务隔离级别分别表现的现象如下表:
隔离级别 | 脏读 | 非重复读 | 幻像读 |
read uncommitted | 允许 | 允许 | 允许 |
read committed | 允许 | 允许 | |
repeatable read | 允许 | ||
serializable |
13,表中有大字段X(例如:text类型),且字段X不会经常更新,以读为为主,请问
(1)您 是选择拆成子表,还是继续放一起?
拆成子表
(2)写出您这样选择的理由?
1 提高检索效率
14,MySQL中InnoDB引擎的行锁是通过加在什么上完成(或称实现)的?为什么是这样子的
通过 行多版本控制
15 MyISAM 与innodb的区别
(1) 问5点不同
MyISAM Innodb
事物支持 : 不支持 支持
锁的粒度: table Row
存储容量: 没有上限 64TB
哈希索引 : 不支持 支持
全文索引: 支持 不支持
外键: 不支持 支持
(2) 问各种不同mysql版本的2者的改进
(3)2者的索引的实现方式
16 B+ 树
http://blog.csdn.net/ggxxkkll/article/details/7551766
我的理解
事务的ACID
A原子性
C一致性
I隔离性
D持久性
数据库的三范式
1第一范式就是无重复的列
2通常需要为表加上一个列,以存储各个实例的惟一标识
3第三范式就是属性不依赖于其它非主属性。(我的理解是消除冗余)
数据库如何优化
设计优化
查询优化 WHERE字句
索引优化
硬件优化
事务是如何通过日志来实现的,说得越深入越好。???
隔离性: 通过 锁 实现
原子性、一致性和持久性是通过 redo和UNDO来完成的。
理解BIN-LOG-FORMAT的三种模式
mix ROW statement
EXPLAIN的每一个字段
EXPLAIN SELECT 1 FROM DUAL;
EXPLAIN的每一个字段
id[SELECT次序] KEY[使用哪个索引] ps_key key_length TABLE TYPE[获取数据类型] ref ROWS[扫描行数] extra
备份计划,mysqldump以及xtranbackup的实现原理???
包括文件系统快照(LVM),逻辑备份工具Mysqldump,Mydumper,以及物理备份工具Xtrabackup
http://www.cnblogs.com/zengkefu/p/5669512.html
请简洁地描述下MySQL中INNODB支持的四种事务隔离级别名称,以及逐级之间的区别???
不可重复读
可重复读
序列读
MySQL中INNODB引擎的行锁是通过加在什么上完成(或称实现)的?为什么是这样子的
也就是MVCC
MYISAM 与INNODB的区别
事务
外键
数据文件和索引文件是否分开
1207MySQL 面试题的更多相关文章
- .NET面试题系列[8] - 泛型
“可变性是以一种类型安全的方式,将一个对象作为另一个对象来使用.“ - Jon Skeet .NET面试题系列目录 .NET面试题系列[1] - .NET框架基础知识(1) .NET面试题系列[2] ...
- 关于面试题 Array.indexof() 方法的实现及思考
这是我在面试大公司时碰到的一个笔试题,当时自己云里雾里的胡写了一番,回头也曾思考过,最终没实现也就不了了之了. 昨天看到有网友说面试中也碰到过这个问题,我就重新思考了这个问题的实现方法. 对于想进大公 ...
- 对Thoughtworks的有趣笔试题实践
记得2014年在网上看到Thoughtworks的一道笔试题,当时觉得挺有意思,但是没动手去写.这几天又在网上看到了,于是我抽了一点时间写了下,我把程序运行的结果跟网上的答案对了一下,应该是对的,但是 ...
- 从阿里巴巴笔试题看Java加载顺序
一.阿里巴巴笔试题: public class T implements Cloneable { public static int k = 0; public static T t1 = new T ...
- JAVA面试题
在这里我将收录我面试过程中遇到的一些好玩的面试题目 第一个面试题:ABC问题,有三个线程,工作的内容分别是打印出"A""B""C",需要做的 ...
- C++常考面试题汇总
c++面试题 一 用简洁的语言描述 c++ 在 c 语言的基础上开发的一种面向对象编程的语言: 应用广泛: 支持多种编程范式,面向对象编程,泛型编程,和过程化编程:广泛应用于系统开发,引擎开发:支持类 ...
- .NET面试题系列[4] - C# 基础知识(2)
2 类型转换 面试出现频率:主要考察装箱和拆箱.对于有笔试题的场合也可能会考一些基本的类型转换是否合法. 重要程度:10/10 CLR最重要的特性之一就是类型安全性.在运行时,CLR总是知道一个对象是 ...
- 我们公司的ASP.NET 笔试题,你觉得难度如何
本套试题共8个题,主要考察C#面向对象基础,SQL和ASP.NET MVC基础知识. 第1-3题会使用到一个枚举类,其定义如下: public enum QuestionType { Text = , ...
- 我设计的ASP.NET笔试题,你会多少呢
本笔试题考查范围包括面向对象基础.HTML.CSS.JS.EF.jQuery.SQL.编码思想.算法等范围. 第1题:接口和抽象类有何区别? 第2题:静态方法和实例方法有何区别? 第3题:什么是多态? ...
随机推荐
- C#委托的一次"甜蜜"接触
委托是个说烂了的话题,但是依旧有好多人不知道为什么要在C#中使用委托,最近有朋友也问到我这个问题,所以举例些场景,以供那些知道怎么声明委托.怎么调用却不知道为什么要用的朋友一些参考,当然也是希望验证下 ...
- [Asp.net 5] Options-配置文件(2)
很久之前写过一篇介绍Options的文章,2016年再打开发现很多变化.增加了新类,增加OptionMonitor相关的类.今天就对于这个现在所谓的新版本进行介绍. 老版本的传送门([Asp.net ...
- [SQL Server] 特殊字符、上标、下标处理
今天遇到一个问题是往 SQL Server 中导入像m².m³这样的单位数据,可是在 SQL Server 中查看到的都是 m2.m3,于是在网上查了一下资料,顺便摘录下来供日后查阅. 一 Wind ...
- HTML5学习笔记之History API
这系列文章主要是学习Html5相关的知识点,以学习API知识点为入口,由浅入深的引入实例,让大家一步一步的体会"h5"能够做什么,以及在实际项目中如何去合理的运用达到使用自如,完美 ...
- winForm连接数据库(sqlserver2005)
帮同学搞个课程设计winform连接sqlserver2005 具体方法: .添加App.config文件 2.在App.config文件中添加节点 <?xml version="1. ...
- angular的$filter服务
首先,介绍下$filter服务: 1.$filter是用来进行数据格式化的专用服务: 2.AngularJS内置了currency.date.filter.json.limitTo.lowercase ...
- html5+jqueryMobile编写App推广注册页
html5+jqueryMobile的组合可以直接开发web版的app,所以用到我当前app中的推广注册页的编写是很恰当的,其实只要你熟悉html4+jquery的组合开发,那么html5+jquer ...
- 数据结构:二叉树 基于list实现(python版)
基于python的list实现二叉树 #!/usr/bin/env python # -*- coding:utf-8 -*- class BinTreeValueError(ValueError): ...
- js数组转换问题
一维数组转多维数组 var arr=[1,2,3,4,5,6,7,8,9,10]; function splitArray(arr,size){ var result = []; var tempAr ...
- arcgis api for js入门开发系列二不同地图服务展示(含源代码)
上一篇介绍了arcgis api离线部署,这篇开始正式介绍arcgis api for js开发:想要学习webgis开发,首先得熟悉了解前端技术,比如界面布局设计的html+css,核心的是java ...