您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

几道mysql面试题

bubuko 2022/1/25 20:00:54 mysql 字数 954 阅读 641 来源 http://www.bubuko.com/infolist-5-1.html

1、为什么一定要设一个主键? 因为不设主键,innodb也会帮你生成一个隐形列作为自增主键。反正都要生成主键,自己指定主键可以显示用上主键索引,提高查询效率。 2、主键是用自增还是UUID(随机)? 自增。innodb住的主键是聚簇索引,如果主键是自增的,每次插入新的记录,记录就会顺序添加到当前索引 ...

1、为什么一定要设一个主键?

  因为不设主键,innodb也会帮你生成一个隐形列作为自增主键。反正都要生成主键,自己指定主键可以显示用上主键索引,提高查询效率。

2、主键是用自增还是UUID(随机)?

  自增。innodb住的主键是聚簇索引,如果主键是自增的,每次插入新的记录,记录就会顺序添加到当前索引节点的后续位置,一页写满后自动开新页。不是自增主键,可能会在中间插入,引发页的分裂,产生很多表碎片。相比之下,自增插入性能更好。

3、主键为何不推荐有业务含义?

  带有业务含义的主键可能会发生变更,引发页分裂,产生空间碎片。

4、表示枚举的字段为什么不用enum类型?

  enum类型的order by操作效率低,需要额外操作。

5、货币字段用什么类型?

  decimal,因为float和double是二进制存储,有一定误差,会导致精度失准。

6、为什么不直接存储图片、音频、视频等大容量内容?

  我们在实际应用中,都是用HDFS来存储文件,在mysql中只存放文件路径。因为myssl的大容量字段类型只有text和blob,但是mysql的内存临时表不支持text、blob这样的大数据类型,如果查询中包含这样的数据,在排序等操作的时候就不能使用内存临时表,必须使用磁盘临时表,导致查询效率缓慢。而且数据内容大会导致binlog内容多,主从同步靠binlog同步,会导致主从同步效率问题。

 

几道mysql面试题

原文:https://www.cnblogs.com/smallzhen/p/12615651.html


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶