原文链接:www.shulanxt.com/doc/mysqldoc/mysqms
想进大厂?MySQL不会可不行呀,小树懒给大家准备了面试的一些问题,今天就先来说基础篇。接受挑战吧,看看你能坚持到哪里?
1.用一句话介绍什么是MySQL?
MySQL是一种开源的关系型数据库管理系统,其服务器速度快、可靠性高,扩展性强,且易于使用。
2.对MySQL数据库去重的关键字是什么?
在select后加distinct关键字去除重复记录。distinct关键字只能出现在所有字段的最前面,如果有多个字段,联合起来去重。如:select distinct deptno ,job from emp;代表的是对deptno ,job都一样的记录进行去重
3.MySQL多表连接有哪些方式?怎么用的?这些连接都有什么区别?
在MySQL中,多表连接的语法格式如下:
SELECT <查询列表>
FROM <表名1> [连接类型]
JOIN <表名2> ON <连接条件>
WHERE <查询条件>
其中连接类型有三种:
左连接
右连接
内连接
多表连接往往要通过表之间的物理外键(或者逻辑外键)进行关联查询。
区别:
Inner join 内连接,在两张表进行连接查询时,只保留两张表中完全匹配的结果集
left join 在两张表进行连接查询时,会返回左表所有的行,即使在右表中没有匹配的记录。
right join 在两张表进行连接查询时,会返回右表所有的行,即使在左表中没有匹配的记录。
4.MySQL数据库和Redis的区别?
(1)类型
从类型上来说,mysql是关系型数据库,redis是缓存数据库
(2)作用
mysql用于持久化的存储数据到硬盘,功能强大,速度较慢,基于磁盘,读写速度没有Redis快,但是不受空间容量限制,性价比高
redis用于存储使用较为频繁的数据到缓存中,读取速度快,基于内存,读写速度快,也可做持久化,但是内存空间有限,当数据量超过内存空间时,需扩充内存,但内存价格贵
(3)需求
mysql和redis因为需求的不同,一般都是配合使用。
需要高性能的地方使用Redis,不需要高性能的地方使用MySQL。存储数据在MySQL和Redis之间做同步。
5.说一下索引的优势和劣势?
优势:创建索引可以大大提高系统的性能。
通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。
可以大大加快数据的检索速度,这也是创建索引的最主要的原因。
可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。
在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。
通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。
劣势:
创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加。
索引需要占物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果要建立聚簇索引,那么需要的空间就会更大。
当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,这样就降低了数据的维护速度。
点击下方“阅读原文”,查看更多精彩内容!





