专栏名称: 鸭哥聊Java
回复关键字:666 ,领取免费简历模板,Java面试题,Java编程视频等。本号内容涵盖Java源码,JVM源码,Dubbo源码,Spring源码,Spring Cloud微服务架构,分布式高并发架构技术,MySQL性能调优等。
今天看啥  ›  专栏  ›  鸭哥聊Java

MySQL 用 limit 为什么会影响性能?有什么优化方案?

鸭哥聊Java  · 公众号  ·  · 2024-06-11 10:45
    

文章预览

Limit 是一种常用的分页查询语句,它可以指定返回记录行的偏移量和最大数目。例如,下面的语句表示从 test 表中查询 val 等于4的记录,并返回第300001到第300005条记录: select * from test where val= 4 limit 300000 , 5 ; 这样的语句看起来很简单,但是在实际使用中,可能会出现性能问题。为什么呢?我们需要从 Mysql 的索引结构和查询过程来分析。 Mysql 的索引结构 Mysql 支持多种类型的索引,其中最常用的是 B+ 树索引。B+ 树索引是一种平衡多路查找树,它有以下特点: 树中的每个节点最多包含 m 个子节点,m 被称为 B+ 树的阶。 树中的每个节点最少包含 m/2(向上取整)个子节点,除了根节点和叶子节点。 树中的所有叶子节点都位于同一层,并且通过指针相连。 树中的所有非叶子节点只存储键值(索引列)和指向子节点的指针。 树中的所有叶子节点存 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览