近期将会出几期 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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




