如何进行MySQL数据库调优以提升性能?

2026-05-27 14:010阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1717个文字,预计阅读时间需要7分钟。

如何进行MySQL数据库调优以提升性能?

概述:在常规情况下,我们需要操作大量数据量的数据库表时,必须关注SQL的开发规范、数据索引以及慢查询。

开发规范:1. 查询SQL都应该建立索引覆盖索引:(这里我们首先借鉴百度百科的索引覆盖概念)

概述:

通常情况下我们需要操作数据量较大的数据库表时候,需要关注sql的开发规范、数据索引以及慢查询

开发规范: 1 查询sql都应该建立索引 覆盖索引:(这里我们先引用百度百科的解释)覆盖索引是select的数据列只用从索引中就能够取得,不必读取数据行,换句话说查询列要被所建的索引覆盖。索引是高效找到行的一个方法,但是一般数据库也能使用索引找到一个列的数据,因此它不必读取整个行。毕竟索引叶子节点存储了它们索引的数据;当能通过读取索引就可以得到想要的数据,那就不需要读取行了。一个索引包含了(或覆盖了)满足查询结果的数据就叫做覆盖索引。优点:减少了回表时间

注:主键索引:叶子节点保存数据 ;辅助索引:叶子节点保存主键值 (基于innoDB引擎)

我们这里通过EXPLAIN语句查询(留意EXPLAIN输出的rows列,如果rows列太高,比如几千,上万,那么就需要考虑是否索引不佳或连接表的顺序不当)

联合索引 + 最左匹配原则 :(这里引用知乎普及一下知识)

联合索引:索引的底层是一颗B+树,联合索引同样是一颗B+树,只不过联合索引的健值数量不是一个,而是多个,数据库依据联合索引最左的字段来构建B+树。

最左匹配原则:

联合索引(A,B,C),最左优先,以最左边的为起点任何连续的索引都能匹配上。

1)遇到范围查询(>、<、between、like)就会停止匹配。

2)因为Mysql中有查询优化器,会自动优化查询顺序,因此A,B,C顺序调换不影响查询结果。

阅读全文

本文共计1717个文字,预计阅读时间需要7分钟。

如何进行MySQL数据库调优以提升性能?

概述:在常规情况下,我们需要操作大量数据量的数据库表时,必须关注SQL的开发规范、数据索引以及慢查询。

开发规范:1. 查询SQL都应该建立索引覆盖索引:(这里我们首先借鉴百度百科的索引覆盖概念)

概述:

通常情况下我们需要操作数据量较大的数据库表时候,需要关注sql的开发规范、数据索引以及慢查询

开发规范: 1 查询sql都应该建立索引 覆盖索引:(这里我们先引用百度百科的解释)覆盖索引是select的数据列只用从索引中就能够取得,不必读取数据行,换句话说查询列要被所建的索引覆盖。索引是高效找到行的一个方法,但是一般数据库也能使用索引找到一个列的数据,因此它不必读取整个行。毕竟索引叶子节点存储了它们索引的数据;当能通过读取索引就可以得到想要的数据,那就不需要读取行了。一个索引包含了(或覆盖了)满足查询结果的数据就叫做覆盖索引。优点:减少了回表时间

注:主键索引:叶子节点保存数据 ;辅助索引:叶子节点保存主键值 (基于innoDB引擎)

我们这里通过EXPLAIN语句查询(留意EXPLAIN输出的rows列,如果rows列太高,比如几千,上万,那么就需要考虑是否索引不佳或连接表的顺序不当)

联合索引 + 最左匹配原则 :(这里引用知乎普及一下知识)

联合索引:索引的底层是一颗B+树,联合索引同样是一颗B+树,只不过联合索引的健值数量不是一个,而是多个,数据库依据联合索引最左的字段来构建B+树。

最左匹配原则:

联合索引(A,B,C),最左优先,以最左边的为起点任何连续的索引都能匹配上。

1)遇到范围查询(>、<、between、like)就会停止匹配。

2)因为Mysql中有查询优化器,会自动优化查询顺序,因此A,B,C顺序调换不影响查询结果。

阅读全文