IT评测·应用市场-qidao123.com技术社区

标题: 最全MySQL面试20题和答案(三) [打印本页]

作者: 写过一篇    时间: 2024-8-11 19:36
标题: 最全MySQL面试20题和答案(三)
视图

1. 为什么要使用视图?什么是视图?
2. 视图有哪些特点?
视图的特点如下:
3. 视图的使用场景有哪些?
视图根本用途:简化 SQL 查询,进步开辟效率。如果说还有另外一个用途,那就是兼容老的表结构。
4. 视图的长处?
5. 视图的缺点?
这些视图有如下特征:
6. 什么是游标?
游标是系统为用户开设的一个数据缓冲区,存放 SQL 语句的执行结果,每个游标区都有一个名字。用户可以通过游标逐一获取记录并赋给主变量,交由主语言进一步处理。
7. 如何定位及优化 SQL 语句的性能问题?创建的索引有没有被使用到?大概说怎么才可以知道这条语句运行很慢的原因?

8. 大表数据查询,怎么优化?
9. MySQL 分页?
LIMIT 子句可以被用于逼迫 SELECT 语句返回指定的记录数。LIMIT 担当一个或两个数字参数。参数必须是一个整数常量。如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数量。初始记录行的偏移量是 0(而不是 1)。
  1. mysql> SELECT * FROM table LIMIT 5,10; -- 检索记录行 6-15
复制代码
为了检索从某一个偏移量到记录集的竣事所有的记录行,可以指定第二个参数为 -1:
  1. mysql> SELECT * FROM table LIMIT 95,-1; -- 检索记录行 96-last.
复制代码
如果只给定一个参数,它表示返回最大的记录行数量:
  1. mysql> SELECT * FROM table LIMIT 5; -- 检索前 5 个记录行
复制代码
换句话说,LIMIT n 等价于 LIMIT 0,n。
10. 慢查询日志?
用于记录执行时间超过某个临界值的 SQL 日志,用于快速定位慢查询,为我们的优化做参考。
开启慢查询日志

配置项:slow_query_log
可以使用 SHOW VARIABLES LIKE 'slow_query_log' 查察是否开启,如果状态值为 OFF,可以使用 SET GLOBAL slow_query_log = ON 来开启,它会在 datadir 下产生一个 xx-slow.log 的文件。
设置临界时间

配置项:long_query_time
查察:SHOW VARIABLES LIKE 'long_query_time',单位秒
设置:SET long_query_time=0.5
实操时应该从长时间设置到短的时间,即将最慢的 SQL 优化掉。
查察日志,一旦 SQL 超过了我们设置的临界时间就会被记录到 xxx-slow.log 中。
11. 关心过业务系统里面的 SQL 耗时吗?统计过慢查询吗?对慢查询都怎么优化过?
在业务系统中,除了使用主键进行的查询,其他的我都会在测试库上测试其耗时,慢查询的统计重要由运维在做,会定期将业务中的慢查询反馈给我们。
慢查询的优化首先要搞明白慢的原因是什么?是查询条件没有命中索引?是加载了不需要的数据列?照旧数据量太大?
优化也是针对这三个方向:
12. 优化查询过程中的数据访问?
13. 优化长难的查询语句?
14. 优化特定范例的查询语句?
15. 优化关联查询?
16. 优化子查询?
17. 优化 LIMIT 分页?
18. 优化 UNION 查询?
19. 优化 WHERE 子句?
20. 数据库为什么要优化?

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 IT评测·应用市场-qidao123.com技术社区 (https://dis.qidao123.com/) Powered by Discuz! X3.4