首页 > 编程知识 正文

mysql高级面试题,linux常用命令面试题

时间:2023-05-06 08:58:52 阅读:159266 作者:4872

前几天,我朋友的他换工作了。 我以前在网上疯狂地找面试问题和资料。 当他得到大厂商的报价时,整理了这10篇Mymsql问题资料,胁迫获利后发给了他,所以今天要和大家分享。

1. MySQL支持哪些存储引擎?

【参考答案】

MySQL支持的存储引擎主要有四种。

)1)InnoDB支持事务,行级锁和外键是事务型数据库的首选引擎。 MySQL5.5.5或更高版本的默认存储引擎;

)2)MyISAM插入,查询速度快,但不支持事务。 MySQL5.5.5或更低版本的默认存储引擎;

)3)Memory基于散列的,存储在内存中,有助于临时表。 典型的APP部署方案是临时存储数据,数据量小,不需要较高的数据安全性

)4)Archive支持高并发插入操作,但本身并不安全。 典型的APP应用方案:使用Archive存储归档数据,包括日志信息记录。

2. MySQL索引的基础是什么结构? 选择这个结构的优点是什么?【参考答案】

MySQL索引的基础采用的是b树的存储结构。 采用b树的理由:

)索引文件很大,无法全部保存在内存中,只能保存在磁盘上,所以索引的数据结构尽量减少查找过程中对磁盘I/O的访问次数。

3 .为什么不选择b树?【参考答案】

b树的所有Data域都位于叶节点中,其馀节点用于索引,b树在每个索引节点上都有一个Data域,并且b树的所有叶的节点之间都有一个链指针。 以这种方式遍历叶节点可以获得所有数据,并支持查询区分。 数据库中基于作用域的查询非常频繁,但Web树不支持这种遍历操作。

4 .为什么不选择红黑树?【参考答案】

红黑树往往高度过大,磁盘I/o读写过于频繁,效率低下。 另外,逻辑上接近的节点(父子)在物理上很远,可能无法利用局部原理。

5. InnoDB和MyISAM的区别是什么呢?【参考答案】

InnoDB支持事务MyISAM不支持事物,它强调性能和提高查询速度。InnoDB支持行级锁和表级锁,但MyISAM只支持表级锁InnoDB支持MVCC,而MyISAM不支持MVCC; InnoDB支持外键,MyISAM不支持外键; 以前版本的InnoDB不支持全文索引。 MySQL5.6及更高版本支持全文索引。 在MyISAM中受支持。 InnoDB不保存表中的具体行数。 count ) )时,扫描整个表格计算有多少行。 MyISAM内置有计数器(count ) )时,从计数器直接读取。 注意:在MySQL中,索引是在存储引擎层实现的,不同的存储引擎具有不同的索引行为。 此外,即使不同的存储引擎支持相同类型的索引,底层实现也可能不同。 在这些存储引擎中,InnoDB使用最广泛,许多问题也以此为中心展开。

6. MySQL支持的索引类型是什么?【参考答案】

普通索引:由表中的普通列构建的索引。 没有限制;唯一索引:唯一索引列的值必须是唯一的,但允许为空值。 对于组合索引,列值组合必须是唯一的。主键索引:基于主键创建索引,是一个特殊的唯一索引,不允许重复或为空。全文索引:一种通过创建倒排索引来快速匹配文档的方法。 MySQL 5.7.6及更早版本仅支持英语,MySQL 5.7.6及更高版本支持中文;组合索引:也称为联合索引。 通过组合多个列构建的索引。 多列值不能为空值。 可以在创建表时指定表,也可以修改表的结构。 7 .你知道集合索引和非集合索引吗?【参考答案】

聚集索引 (clustered index)也称为主索引,键值的逻辑顺序决定表中相应行的物理顺序。 由于真正的数据数据只有一种排序方法,因此一个表中只有一个聚簇索引。非聚集索引 (secondary index)也称为辅助索引、普通索引,其逻辑顺序与磁盘上行链路的物理存储顺序不同,一个表可以包含多个非聚合索引。 注:聚合索引/非聚合索引是一种存储数据的方法,而不是索引类型。 在InnoDB中,它们有非常重要的区别。 如果要使用非聚合索引进行搜索,请搜索主键值,因为聚合索引的叶节点的data域包含完整的数据记录,而非聚合索引的叶节点的data域包含主键值这称为回表查询。

8 .索引有什么缺点

【参考答案】

索引需要额外的占用物理空间,索引越多,所以空间越多;当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,降低了数据的写速度;9. 索引什么时候会失效?

【参考答案】

索引失效通常有以下原因:

条件中有 or;like 查询(以 % 开头);如果列类型是字符串,那一定要在条件中将数据使用引号引用起来,否则不使用索引;对列进行函数运算(如 where md5 (password) = “xxxx”);负向查询条件会导致无法使用索引,比如 NOT IN,NOT LIKE,!= 等;对于联合索引,不是使用的第一部分 (第一个),则不会使用索引(最左匹配);如果 mysql 评估使用全表扫描要比使用索引快,则不使用索引;。10. 为什么不选择哈希表?

【参考答案】

哈希表只适用与查找等值查询, 不能支持区分条件(大于小于查询)、模糊查询等;hash 索引虽然在等值查询上较快,但是不稳定,性能不可预测,当某个键值存在大量重复的时候,发生 hash 碰撞,此时效率可能极差。而 B + 树的查询效率比较稳定。

——————————————————————

资料领取方式:点赞+收藏后,私聊小编:资料,免费领取

看完记得点赞+收藏哦!在这里也祝愿读者们都可以拿到自己心仪的offer哦!

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。