推广 热搜: csgo  vue  angelababy  2023  gps  新车  htc  落地  app  p2p 

索引优化——MySQL 性能故障优化利器

   2023-08-13 网络整理佚名1980
核心提示:【摘要】本文主要讲解的是MySQL的索引使用原理与效能。【作者】泊涯,公司分部测试经理,集团公司技术专家成员之一,目前主要在客户现场做银行系统的性能诊断分析优化和测试管理工作。

[摘要] 本文主要讲解MySQL索引的使用原理和性能。

【作者简介】波亚,公司分行测试经理,集团公司技术专家之一,目前主要做客户现场银行系统的性能诊断、分析、优化和测试管理工作。

从性能角度来看,80%的性能问题都是设计出来的。 从性能测试问题的统计概率分析,80%的性能问题来自于处理数据引起的问题,其中SQL语法问题所占的比例比较高,而且此类问题很大一部分是由处理数据引起的数据检索方式上的问题,如全表扫描、多表关联设计、大表使用等导致查询数据慢,针对此类问题的优化方法包括:语法反汇编、表连接优化、表物理分区、逻辑分区、适当使用数据库参数、合理使用不同类型索引、优化硬件资源、优化业务需求等来提高检索数据率。

对于测试人员来说,主要是通过设计合理的测试场景和合理的监控工具,这样才能快速发现问题,并将未来生产中可能出现的故障解决在摇篮里,而且一些指标使用的合理性也很重要。重要的。 只有在测试过程中通过各种调试尝试,才能知道如何以最合理的方式进行优化。 这时候我们作为测试人员也可以学习如何构建合适的索引来达到最好的效果。 这就是我们作为测试人员可以做的。 自行体验优化。 当然,我们需要了解数据库索引的使用原理才能知道如何优化。 毕竟发现SQL问题很容易,但是解决起来却比较困难。 罕见的原因是我们不了解他们的工作原理。

既然我们作为测试人员要做如何测试来测试出问题,然后诊断、分析、优化问题,那么从测试的角度来说,我们需要了解测试方案的设计、测试模型的分析、测试模型的定制等。测试策略和监控模型。 设计、测试用例设计、测试结果分析、测试报告撰写等简单易行。 我们还需要学习架构原理、操作系统原理、数据库原理、JVM原理等,目的是了解它们的底层原理,以便更有效地发现问题。 提供优化方案、发现问题是技术行为,解决优化问题是艺术行为。

指标设计要求:

1、适合索引的列是where子句中出现的列,或者join子句中指定的列;

2、表基数较小,索引效果较差,无需为此列创建索引;

3、单一表类型不建议使用索引,比如性别表、男女

4.不要过度索引。 索引需要额外的磁盘空间并降低写入操作的性能。 当修改表的内容时,索引会被更新甚至重组。 索引列越多,这个时间就越长。

5、过滤后的数据量比较少。 一般来说,20%-40%可能会被索引,也可能不会被索引,这取决于数据库成本分析。 > 40% 基本不使用索引(会进行全表扫描)

6、计算索引字段时,必须在运算符右侧进行计算。 也就是说,(oc., '') 是无用的——您可以使用函数索引等。

我们的文章主要讲解了MySQL索引的使用原理和性能。

什么是索引? 为什么要建立索引?

索引用于快速查找某一列中具有特定值的行。 如果没有索引,MySQL 必须从第一条记录开始读取整个表,直到找到相关行。 表越大,查询数据的代价越大,时间越长,如果表中查询的列有索引,MySQL就可以快速到达某个地方去搜索数据文件,而不必查看所有数据,这将节省大量时间。

就像我们的汉语词典一样,如果你不知道部首和拼音,不知道如何读和解释一个单词,你需要一页一页、一行一行地查找,直到找到你想要的单词。 可想而知这个速度有多慢。

比如这张用户表有1000万条数据。 需要查找家住武当山的张三丰的个人信息,电话号码为 。 如果不使用索引,则需要从表中的第一条记录开始。 一笔的遍历查询主要是查找信息。 如果恰好是第一个,可能会更快。 如果它是表中的最后一个怎么办? 如果这个时候有索引,那么张子杰就可以根据姓名和电话号码来查找索引,不需要遍历就能快速找到对应的数据。

既然我们知道了可以通过索引来提高查询效率,那么我们就需要了解索引存储有几种类型:BTREE、HASH。

查看索引类型方法:

您可以使用 SHOW INDEX FROM; 查看索引详细信息:

Table:创建索引的表

:表示索引不唯一,1代表非唯一索引,0代表唯一索引,表示该索引是否为唯一索引

:索引名称表示该字段在索引中的位置。 对于单列索引,该值为1。对于复合索引,它是索引定义中各个字段的顺序(只需知道单列索引的值为1,而复合索引是其他)

:表示定义索引的列字段, :表示索引的长度;

Null:表示该字段是否可以为空

:表示索引类型

主键索引 KEY

它是一种特殊的唯一索引,不允许空值。 一般情况下,主键索引是在建表的同时创建的。 注意:一张表只能有一个主键。

唯一索引

唯一索引列的值必须是唯一的,但允许空值。如果是复合索引,列值的组合必须是唯一的

- 创建唯一索引

表上的索引(())

– 修改表结构

更改表添加 (())

普通指数 INDEX

这是最基本的指标,没有任何限制。

---直接创建索引

表上的索引(())

---通过修改表结构添加索引

更改表在 (()) 上添加索引

---删除索引

删除表上的索引

全文索引()

全文索引,只能用在引擎上,只能用在CHAR,,TEXT类型字段上

– 添加全文索引

索引 ()

–修改表结构并添加全文索引

更改表添加()

综合指数

表中多个字段组合创建的索引只有在查询条件中使用这些字段的左字段时才会使用,并且使用组合索引时遵循最左边的前缀集。

 
反对 0举报 0 收藏 0 打赏 0评论 0
 
更多>同类资讯
推荐图文
推荐资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报
Powered By DESTOON