近期将会出几期 MySQL 相关的面试题,首先从 SQL 优化篇开始。
1、如何定位 MySQL 慢查询?如何分析 SQL 执行效率?Explain 的结果重点关注项。
答案参考慕课网专栏《一线数据库工程师带你深入理解 MySQL》02 快速学会分析SQL执行效率 https://www.imooc.com/read/43/article/682
2、举例说明哪些情况条件字段有索引也使用不了索引?
答案参考慕课网专栏《一线数据库工程师带你深入理解 MySQL》04 条件字段有索引,为什么查询也这么慢?
https://www.imooc.com/read/43/article/684
3、如何优化数据导入?
答案参考慕课网专栏《一线数据库工程师带你深入理解 MySQL》05 如何优化数据导入? https://www.imooc.com/read/43/article/685
4、MySQL 排序方式有哪些?怎么确定某条排序语句所使用的排序方式?
答案参考慕课网专栏《一线数据库工程师带你深入理解 MySQL》06 让order by、group by查询更快 https://www.imooc.com/read/43/article/686
5、表 t1 结构如下:
CREATE TABLE `t1` ( /* 创建表t1 */
`id` int(11) NOT NULL AUTO_INCREMENT,
`a` int(20) DEFAULT NULL,
`b` int(20) DEFAULT NULL,
`c` int(20) DEFAULT NULL,
`d` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `idx_c` (`c`)
) ENGINE=InnoDB CHARSET=utf8mb4 ;
复制
如果某个 MySQL 实例中存在大量下面的 SQL 语句,应该怎样设计索引?
select id,a,b from t1 where a=1000 order by b;
复制
答案参考慕课网专栏《一线数据库工程师带你深入理解 MySQL》06-让order by、group by查询更快:2.1.2 多个字段排序优化 https://www.imooc.com/read/43/article/686
6、表 t1 结构如下:
CREATE TABLE `t1` ( /* 创建表t1 */
`id` int(11) NOT NULL auto_increment,
`a` int(11) DEFAULT NULL,
`b` int(11) DEFAULT NULL,
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '记录创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '记录更新时间',
PRIMARY KEY (`id`),
KEY `idx_a` (`a`),
KEY `idx_b` (`b`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
复制
下面这条 SQL 可以怎么优化:
select * from t1 order by a limit 99000,2;
复制
答案参考慕课网专栏《一线数据库工程师带你深入理解 MySQL》07 换种思路写分页查询 https://www.imooc.com/read/43/article/687
7、如果第 6 问中的表 t1 在开始主键是自增的,但是中间有部分记录被删除了,也就是主键不连续的情况,下面这条 SQL 应该怎么优化?
select * from t1 limit 99000,2;
复制
答案参考慕课网专栏《一线数据库工程师带你深入理解 MySQL》07 换种思路写分页查询的留言板块。 https://www.imooc.com/read/43/article/687
8、关联查询有哪些优化技巧?
答案参考慕课网专栏《一线数据库工程师带你深入理解 MySQL》08 Join语句可以这样优化 https://www.imooc.com/read/43/article/688
9、哪种情况下,小表做驱动表跟大表做驱动表的执行效率是一样的?
答案参考慕课网专栏《一线数据库工程师带你深入理解 MySQL》08 Join语句可以这样优化 的留言板块 https://www.imooc.com/read/43/article/688
10、count(a) 和 count(*) 的区别?count(1) 比 count(*) 快吗?
答案参考慕课网专栏《一线数据库工程师带你深入理解 MySQL》09 为何count(*)这么慢? https://www.imooc.com/read/43/article/689
文章转载自MySQL数据库联盟,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
【专家有话说第五期】在不同年龄段,DBA应该怎样规划自己的职业发展?
墨天轮编辑部
1329次阅读
2025-03-13 11:40:53
MySQL8.0统计信息总结
闫建(Rock Yan)
502次阅读
2025-03-17 16:04:03
2月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
471次阅读
2025-03-13 14:38:19
SQL优化 - explain查看SQL执行计划(一)
金同学
399次阅读
2025-03-13 16:04:22
MySQL突然崩溃?教你用gdb解剖core文件,快速锁定“元凶”!
szrsu
379次阅读
2025-03-13 00:29:43
MySQL生产实战优化(利用Index skip scan优化性能提升257倍)
chengang
333次阅读
2025-03-17 10:36:40
MySQL数据库当前和历史事务分析
听见风的声音
309次阅读
2025-04-01 08:47:17
MySQL 生产实践-Update 二级索引导致的性能问题排查
chengang
256次阅读
2025-03-28 16:28:31
墨天轮个人数说知识点合集
JiekeXu
245次阅读
2025-04-01 15:56:03
一键装库脚本3分钟极速部署,传统耗时砍掉95%!
IT邦德
244次阅读
2025-03-10 07:58:44