电话:13485538018
关闭
您当前的位置:首页 > 职场资讯 > 面试秘籍

mysql如何定位与分析慢查询?这些方法你得知道

来源:网络整理 时间:2025-10-22 作者:佚名 浏览量:

1. mysql如何定位慢查询?

在mysql中可以在配置文件中设置开启慢查询日志,并设置一

是这样一个时间,一旦超过此时间,便将会把那种执行缓慢的sql记录于日志文件之中。或者运用skyworking,能够查询获得具体是哪一个接口执行的速度较为缓慢,进而定位至确切的sql语句,随后针对具体的sql实施优化操作。。

2. 如何分析慢查询?

在mysql里,利用explain命令能够取得当前sql的执行状况信息,依据key还有key_len字段判定索引是不是被命中,要是已设索引,可以瞧瞧索引是否有效;借助type字段判断当前sql有无优化空间,像是否存在全索引扫描或者全表扫描;再有一个extra建议字段,可以判断 是否存在回表景象,如果有,能够设置索引或者改动返回 的字段进行优化 。

3. 什么是索引?

索引是一种数据结构,这种结构用于提高查询数据的效率,并且它还能够对数据加以排序。

4. 索引是如何实现的?

索引乃是B+树结构,置身于此树结构里面,仅有叶子节点名副其实存放数据哟,非叶子节点单单存储键以及子节点的指针呀,此状况下非叶子节点下层能够存在多个叶片节点呢。而且叶子结点借助双向链表相互连接起来啦。

5. B树和B+树的区别?

B树的非叶子节点会存储数据,B树的子节点也会存储数据,B+树只有叶子节点才存放数据,因此B+树的查询效率更加稳定,而且B+树的叶子节点通过双向链表连接起来,在进行范围查询时效率更高 。

6. 聚簇索引和非聚簇索引的区别是什么?

聚簇索引跟数据放置在一起,有别于非聚簇索引,其与数据是分开来存储的。聚簇索引所指的是索引存放的是当前完整行的数据,而非聚簇索引指的是索引仅仅存放了主键,通常而言,通常常见的自定义的索引属于非聚簇索引(二级索引)。

7. 什么是回表查询?

由于二级索引不会存储整行的信息,在此情况下,若想返回其他列的数据,就需要到聚簇索引中查询整行的数据,进而形成了回表,此即为回表查询。

8. 什么是覆盖索引?

索引里存在这样一种情况是覆盖索引,它意味着索引能够给到所有所需字段,并非要倚靠主键去查询聚簇索引里的数据,如此就能避开那种回表操作的。

9. 数据量特别大的情况,怎么提高分页的效率?

先运用子查询,借助limit去查询出主键,之后凭借这个id去查询出分页的数据,之所以如此是因为查询分页数据的id属于覆盖索引,进而提高了查询效率 。

10. 索引的创建原则

mysql慢查询分析_mysql慢查询定位_mysql主从复制原理面试

对查询较为频繁的字段,进行索引设置;尽可能去创建复合索引,以此覆盖sql的返回值;要是字段当中的数据相对较长,那就设置前缀索引;在设置复合索引之际,将查询频繁的放置在前面,不怎么频繁的则排列在后面;对索引的数量加以控制,因为太多的话会对修改以及删除的效率产生影响;当表的数据量比较大的时候,进行索引设置。

11. 索引失效的情况

采用除前缀模糊查询之外的模糊匹配方式,针对索引字段进行计算或者进行类型转换,要是属于复合索引,并且左侧的字段运用了范围查询,此种情况下右边的索引字段会失效,而且没有遵循最左匹配原则。

12. 如何做sql优化

非采用 select * ,而是指明具体的字段名称,运用 union all 将 union 替代,尽可能运用内连接 ,降低外连接的使用 ,若必定得用外连接 ,以小表充当驱动表 ;创建表之际 ,为字段设定恰当的字段类型 ;建立索引之时 ,遵照索引的创建原则 ;借助主从复制达成读写分离 ;数据量较大的情形下进行分库分表 。

13. 介绍一下事务的特性

事物具备特性(ACID),其中包括原子性,一致性,隔离性,持久性;原子性所指的是,事务里的操作,要么全部取得成功,要么全部遭遇失败;一致性所指的是,事务进行提交或者回滚之后,数据需要维持一致这样的状态;隔离性所指的是,一个事物不会受到另一个事务的影响;持久性所指的是,事务提交之后,数据要进行持久化的存储。

14. 并发事务带来的问题有哪些?如何解决

脏读,是事务读到了其他事务修改但未提交的数据,不可重复读,是两次相同的查询得到了不同的数据,幻读,是事务读取到了其他事务插入的“幻行”。脏读、不可重复读、幻读,要解决这些问题,可使用事务的隔离级别:读未提交、读已提交、可重复读(默认)、串行化。其中,读未提交不能解决任何问题,读已提交能解决脏读,可重复读能解决不可重复读的问题,串行化能解决幻读问题。

15. 什么是undo log?什么是redo log?

redo log是事务于提交之际所记录的变更数据,这些数据在服务器出现宕机状况后且再次恢复之时,能够被用以恢复数据,以此保证事务的持久性,undo log记录的是逻辑日志,在事务实施回滚操作之后可以把数据恢复成原始数据,从而保证了事务的原子性、一致性。

16. 什么是MVCC?

多版本并发控制即 MVCC,其目的在于解决事务隔离性,而非锁,事务隔离性由 MVCC 与锁二者共同控制;基于多版本并发控制的 MVCC,维护着多个事务版本,其底层涵盖事务 id、回滚指针、read_view 以及 undo log等,回滚指针所指向对象为前一个事务的 id,如此便形成一个版本链记录于 read_view 之中;read_view 对不同隔离级别下的快照读予以定义,此定义能够决定事务当前所访问版本数据 。

17. Mysql是如何实现主从同步的?

主数据库更新数据之后,会把记录存到bin log里,从数据库会把bin log里的数据存到中继日志,最终借助中继日志同步数据。

18. Mysql的分库分表能介绍一下吗?

mysql里存在垂直分库和水平分库,垂直分库是依照业务去拆分,像是在分布式架构情形下,不同的微服务部署对应的数据库表,水平分库是借助拆分数据,运用mycat按照id取模规则把大量的数据拆分到不同数据库里。

微信扫一扫分享资讯
客服服务热线
13485538018
24小时服务
微信公众号
手机浏览

CopyrightC 2009-2025 All Rights Reserved 版权所有 芜湖人才网 本站内容仅供参考,不承担因使用信息、外部链接或服务中断导致的任何直接或间接责任,风险自担。如有侵权,请联系删除,联系邮箱:ysznh@foxmail.com 鄂ICP备2025097818号-15

地址: EMAIL:qlwl@foxmail.com

Powered by PHPYun.

用微信扫一扫