MySQL 最新常见面试题和学习思维导图

本文分享了MySQL学习的思维导图和面试中常见的问题,包括CHAR与VARCHAR的区别、TRUNCATE与DELETE的区别、触发器类型、FLOAT与DOUBLE、获取当前日期、查询第N高分数的方法、InnoDB与MyISAM的对比、索引、主键、唯一索引和联合索引的区别,以及优化查询策略等。同时,文章强调了索引在性能优化中的重要作用和避免使用运算符查询索引列。
摘要由CSDN通过智能技术生成

摘要: 无论在平时开发中还是面试中我们都会遇到一些MySQL的问题, 最近也在梳理一些MySQL的一些问题和整理了一些学习思维导图,希望对你有帮助, 也欢迎大家一起交流。 本文首发于公众号: 漫步coding

MySQL学习思维导图

该图以 Markdown 绘制思维导图的开源工具——markmap(Try markmap)自动渲染出来的, 如果需要Markdown原稿(看的更加清晰), 关注公众号, 回复mysql 即可获得。

面试中MySQL一些常见的问题

1、CHAR、VARCHAR的区别是什么?

VARCHAR类型用于存储可变长度字符串,是最常见的字符串数据类型。它比固定长度类型更节省空间,因为它仅使用必要的空间(根据实际字符串的长度改变存储空间)。

VARCHAR节省了存储空间,所以对性能也有帮助。但是,由于行是变长的,在UPDATE时可能使行变得比原来更长,这就导致需要做额外的工作。如果一个行占用的空间增长,并且在页内没有更多的空间可以存储,在这种情况下,不同的存储引擎的处理方式是不一样的。例如,MylSAM会将行拆成不同的片段存储,InnoDB则需要分裂页来使行可以放进页内。

CHAR类型用于存储固定长度字符串:MySQL总是根据定义的字符串长度分配足够的空间。当存储CHAR值时,MySQL会删除字符串中的末尾空格(在MySQL 4.1和更老版本中VARCHAR 也是这样实现的——也就是说这些版本中CHAR和VARCHAR在逻辑上是一样的,区别只是在存储格式上)。

同时,CHAR值会根据需要采用空格进行剩余空间填充,以方便比较和检索。但正因为其长度固定,所以会占据多余的空间,也是一种空间换时间的策略。

CHAR适合存储很短或长度近似的字符串。例如,CHAR非常适合存储密码的MD5值,因为这是一个定长的值。对于经常变更的数据,CHAR也比VARCHAR更好,因为定长的CHAR类型不容易产生碎片。对于非常短的列,CHAR比VARCHAR在存储空间上也更有效率。例如用CHAR(1)来存储只有Y和N的值,如果采用单字节字符集只需要一个字节,但是VARCHAR(1)却需要两个字节,因为还有一个记录长度的额外字节。
  

2、TRUNCATE和DELETE的区别是什么?

DELETE命令从一个表中删除某一行,或多行,TRUNCATE命令永久地从表中删除每一行。

3、什么是触发器,MySQL中都有哪些触发器?

触发器是指一段代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值