大数据百科全书(八)-MySQL常见面试题
不要再问老师:
菩提老师,学大数据,为啥要了解数据库知识?为啥要面试MySQL
菩提老师,学大数据,为啥要懂Linux?我啥要会shell编程
菩提老师,学大数据,为啥要学JAVA?要懂java编程
来,话不多说,咱今天来看看常见的MySQL面试题
1. 如何一个表数据的前50行?
SELECT * FROM LIMIT 0,50;
2. 对于关系型数据库而言,索引是相当重要的概念,请回答有关索引的几个问题:
1) 索引的目的是什么? 快速访问数据表中的特定信息,提高检索速度 创建唯一性索引,保证数据库表中每一行数据的唯一性。 加速表和表之间的连接
负面影响: 创建索引和维护索引需要耗费时间,这个时间随着数据量的增加而增加;
索引需要占用物理空间,不光是表需要占用数据空间,每个索引也需要占用物理空间;
当对表进行增、删、改、的时候索引也要动态维护,这样就降低了数据的维护速度。
3. 解释MySQL外连接、内连接与自连接的区别
4. SQL语言包括哪几部分?每部分都有哪些操作关键字?
5. 常见的通用SQL函数?
6. 什么情况下设置了索引但无法使用
7. Mysql中的myisam与innodb的区别(最经典题目)
-
InooDB支持事务,而MyISAM不支持事务
-
InnoDB支持行级锁,而MyISAM支持表级锁
-
InnoDB支持MVCC,而MyISAM不支持
-
InnoDB支持外键,而MyISAM不支持
-
InnoDB不支持全文索引,而MyISAM支持
8. MySQL中的varchar和char的区别以及varchar(50)中的50代表的涵义
1)varchar和char
char是一种固定长度的类型,varchar则是一种可变长度的类型
2)varchar(50)的涵义
最多存放50个字符,varchar(50)和(200)存储hello所占空间一样,
但后者在排序时会消耗更多的内存,因为order by col采用fixed_length计算col长度(memory引擎也一样)
9. InnoDB有多少种日志
错误日志:
记录出错信息,也记录一些警告信息或者正确的信息
-
查询日志: 记录所有对数据库请求的信息,不论这些请求是否得到了正确的执行
-
慢查询日志: 设置一个阈值,将运行时间超过该值的所有SQL语句都记录到慢查询的日志文件中
-
二进制日志: 记录对数据库执行更改的所有操作
-
中继日志,事务日志。
10. 为什么使用数据索引能提高效率
1) 数据索引的存储是有序的
2) 在有序的情况下,通过索引查询一个数据是无需遍历索引记录的
3) 极端情况下,数据索引的查询效率为二分法查询效率,趋近于 log2(N)
11. 为什么说B+比B树更适合实际应用中操作系统的文件索引和数据库索引?