2021最全MySQL面试题(带答案)

我把所有Java相关的面试题和答案都整理成了PDF,并且带书签目录,阅读起来非常方便

面试题及答案PDF下载:https://www.hicxy.com/?p=2645

面试题及答案PDF下载:https://www.hicxy.com/?p=2645

面试题及答案PDF下载:https://www.hicxy.com/?p=2645

1. FLOAT和DOUBLE的区别是什么?

  • FLOAT类型数据可以存储至多8位十进制数,并在内存中占4字节。
  • DOUBLE类型数据可以存储至多18位十进制数,并在内存中占8字节。

2. 字段为什么要求定义为not null?

MySQL官网这样介绍:

NULL columns require additional space in the rowto record whether their values are NULL. For MyISAM tables, each NULL columntakes one bit extra, rounded up to the nearest byte.

null值会占用更多的字节,且会在程序中造成很多与预期不符的情况.

3. drop、delete与truncate分别在什么场景之下使用?

1、 不再需要一张表的时候,用drop
2、 想删除部分数据行时候,用delete,并且带上where子句
3、 保留表而删除所有数据的时候用truncate

4. 使用索引查询一定能提高查询的性能吗?为什么

通常,通过索引查询数据比全表扫描要快.但是我们也必须注意到它的代价.

1、索引需要空间来存储,也需要定期维护, 每当有记录在表中增减或索引列被修改时,索引本身也会被修改. 这意味着每条记录的INSERT,DELETE,UPDATE将为此多付出4,5 次的磁盘I/O. 因为索引需要额外的存储空间和处理,那些不必要的索引反而会使查询反应时间变慢.使用索引查询不一定能提高查询性能,索引范围查询(INDEX RANGE SCAN)适用于两种情况:
2、基于一个范围的检索,一般查询返回结果集小于表中记录数的30%
3、基于非唯一性索引的检索

5. 做过哪些MySQL索引相关优化

  • 尽量使用主键查询: 聚簇索引上存储了全部数据, 相比普通索引查询, 减少了回表的消耗.

  • MySQL5.6之后引入了索引下推优化, 通过适当的使用联合索引, 减少回表判断的消耗.

  • 若频繁查询某一列数据, 可以考虑利用覆盖索引避免回表.

  • 联合索引将高频字段放在最左边.

后面的问题,大家可以先自己独立思考一下。

另外我把所有Java相关的面试题和答案都整理出来了,给大家参考一下

面试题及答案PDF下载:https://www.hicxy.com/?p=2645

面试题及答案PDF下载:https://www.hicxy.com/?p=2645

面试题及答案PDF下载:https://www.hicxy.com/?p=2645

6. 上面提到了B+树在满足聚簇索引和覆盖索引的时候不需要回表查询数据,什么是聚簇索引?

7. 简单描述 MySQL 中,索引,主键,唯一索引,联合索引的区别,对数据库的性能有什么影响(从读写两方面)

8. innodb的事务与日志的实现方式

9. MySQL中varchar与char的区别以及varchar(50)中的50代表的涵义

10. MySQL由哪些部分组成, 分别用来做什么

11. MyISAM索引实现?

12. 创建索引的语法

13. 锁的优化策略

14. 什么情况下设置了索引但无法使用

15. 那么在哪些情况下会发生针对该列创建了索引但是在查询的时候并没有使用呢?

16. 主键使用自增ID还是UUID?

17. 什么是存储过程?有哪些优缺点?

18. 超键、候选键、主键、外键分别是什么?

19. 并发事务带来哪些问题?

20. MyISAM存储引擎特性有哪些?

21. Hash索引和B+树所有有什么区别或者说优劣呢?

22. MySQL索引的原理

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

24. MySQL的常用操作

25. 列值为NULL时,查询是否会用到索引?

26. 锁机制与InnoDB锁算法

27. MySQL索引的创建原则

28. 什么是关系型数据库?

29. 索引是个什么样的数据结构呢?

30. MySQL中的varchar和char有什么区别.

31. 如何在MySQL种获取当前日期?

32. 怎么看到为表格定义的所有索引?

33. 什么是 MySql 视图?

34. 关心过业务系统里面的sql耗时吗?统计过慢查询吗?对慢查询都怎么优化过?

35. myisamchk 是用来做什么的?

36. ACID是什么?可以详细说一下吗?

37. 存储过程和函数好像差不多,你说说他们有什么区别?

38. MySQL 中有哪几种锁?

39. 为什么用 B+ 树做索引而不用哈希表做索引?

40. 索引的使用场景

41. 以下三条sql 如何建索引,只建一条怎么建?

42. 索引的类型

43. 外连接(LEFT JOIN/RIGHT JOIN)

44. 索引的区别

45. 什么是视图?以及视图的使用场景有哪些?

46. MySQL数据库cpu飙升到500%的话他怎么处理?

47. 索引的优缺点

48. 索引的基础

49. 非聚簇索引一定会回表查询吗?

50. MySQL 数据库作发布系统的存储,一天五万条以上的增量, 预计运维三年,怎么优化?

51. 以下语句是否会应用索引:SELECT FROM users WHERE YEAR(adddate) < 2007;

52. 内连接分为三类

53. 数据库删除操作中的 delete、drop、 truncate 区别在哪?

54. 如果一个表有一列定义为TIMESTAMP,将发生什么?

55. Explain 性能分析

56. 横向分表和纵向分表,可以分别举一个适合他们的例子吗?

57. 使用 MySQL 视图有何优点?

58. 联合索引是什么?为什么需要注意联合索引中的顺序?

59. 一个6亿的表a,一个3亿的表b,通过外间tid关联,你如何最快的查询出满足条件的第50000到第50200中的这200条数据记录。

60. 唯一索引比普通索引快吗, 为什么

61. MySQL 里记录货币用什么字段类型好

62. 什么是 SQL

63. MySQL 存储引擎类型有哪些?

64. 索引分类

65. 联合查询(UNION与UNION ALL)

66. InnoDB 引擎的四大特性是什么?

67. MyISAM存储引擎应用场景有哪些?

68. varchar(10)和int(10)代表什么含义?

69. 如何优化SQL

70. MySQL的binlog有有几种录入格式?分别有什么区别?

71. 对MySQL的锁了解吗?

72. SQL 语句有哪些分类?

73. 触发器的使用场景

74. MySQL都有哪些锁呢?像上面那样子进行锁定岂不是有点阻碍并发效率了?

75. 存储引擎常用命令

76. 请说明InnoDB和MyISAM的区别

77. UNION与UNION ALL的区别?

78. 什么是触发器,MySQL中都有哪些触发器?

79. 超大分页怎么处理?

80. 简单说一说drop、delete与truncate的区别

81. MySQL索引的注意事项

82. int(10) 和 bigint(10) 能存储的数据大小一样吗?

83. Innodb使用的是哪种隔离级别呢?

84. B-Tree 和 B+Tree

85. SELECT COUNT(*) 在哪个引擎执行更快?

86. 存储时期

87. CHAR 和 VARCHAR的区别?

88. 索引是什么?有什么作用以及优缺点?

89. 在建立索引的时候,都有哪些需要考虑的因素呢?

90. MySql 服务默认端口号是多少 ?

91. 创建的索引有没有被使用到?或者说怎么才可以知道这条语句运行很慢的原因?

92. InnoDB和MyISAM有什么区别?

93. 关系型数据库有什么优势?

94. 优化数据库的方法

95. MySQL复制基本原理流程

96. SQL 注入漏洞产生的原因?如何防止?

97. 解释 MySQL 外连接、内连接与自连接的区别

98. 六种关联查询

99. 全连接(FULL JOIN)

100. 请说明varchar和text的区别

101. innodb引擎的特性

102. InnoDB 存储引擎应用场景是什么?

103. MySQL的复制原理以及流程

104. 说一说三个范式

105. MySQL如何保证复制过程中数据一致性及减少数据同步延时

106. 索引对性能的影响:

107. MySQL事务处理

108. Myql 中的事务回滚机制概述

109. 什么是存储过程?

110. 为什么要尽量设定一个主键?

111. MySQL锁机制

112. MySQL 有哪些数据类型?

113. 什么是MySQL?

114. 简单描述MySQL中,索引,主键,唯一索引,联合索引的区别,对数据库的性能有什么影响?

115. 数据库的乐观锁和悲观锁是什么?

116. MySQL中varchar与char的区别以及varchar(50)中的50代表的涵义

117. SQL语句优化的一些方法?

118. 什么是事务?

119. 如果要存储用户的密码散列,应该使用什么字段进行存储?

120. VARCHAR(50) 能存放几个 UTF8 编码的汉字?

121. 创建MySQL联合索引应该注意什么?

122. 怎么解决这些问题呢?MySQL的事务隔离级别了解吗?

123. 同时有多个事务在进行会怎么样呢?

124. MyISAM索引与InnoDB索引的区别?

125. 你们数据库是否支持emoji表情,如果不支持,如何操作?

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值