美文网首页
mysql 查询性能优化【1】

mysql 查询性能优化【1】

作者: 竞技等级几点叫你你呢 | 来源:发表于2017-10-16 23:17 被阅读0次

优化数据访问

1、是否向数据库请求了不需要的数据

给mysql服务器带来额外的负担,并增加网络开销、消耗应用服务器的cpu和内存资源

1、查询不需要的记录
select * ....
2、查询相同的数据
反复查询这个数据时,可以将这个数据缓存起来,需要的时候从缓存中取

2、Mysql 是否在扫描额外的记录

三个指标
1、响应时间
2、扫描的行数
3、返回的行数

···
响应时间:服务时间和排队时间。服务时间是指数据库处理这个查询真正花了多长时间,排队时间是指服务器因为等待某些资源而没有真正执行查询的时间(可能行级锁)。
···

如果查询发现扫描大量的数据但只返回少数的行:

1、使用索引覆盖扫描,把所有需要用的列都放在索引中,这样存储引擎无须回表获取对应行就可以返回结果。
2、改变库表结构。例如使用单独的汇总表。
3、重写这个复杂的查询,让Mysql优化器能够以更优的方式执行这个查询。

重构查询的方式

有优化的问题时,目标是应该找到更优的方式获得实际需要的结果(而不一定需要从Mysql获取一模一样的结果集)

1、将查询转换一种写法让其返回一样的结果
2、修改应用代码,用另一种方式完成查询

1、一个复杂的查询还是多个简单的查询

设计查询的时候一个需要考虑的重要问题,是否需要将一个复杂的查询分为多个简单的查询。 在传统的实现中,重视强调数据库层尽可能多的工作,这样做的逻辑在于以前总是认为网络通信、查询解析和优化是一件代价很高的问题。mysql从设计上连接和断开是很轻量级的在返回一个小的查询结果方面很高效。

2、切分查询

对于一个大查询  ' 分而治之 ',将大查询切分为小查询。

删除旧的数据(定期地清除大量数据时,可以分批次删除)

3、分解关联查询

很多高性能的应用都会对关联查询进行分解

分解的优势
1、让缓存的效率更高。拆分后,如果某个表很少改变,那么基于该表的查询就可以重复利用查询缓存结果了。
2、将查询分解后,执行单个查询可以减少锁的竞争
3、在应用层做关联,可以更容易对数据库进行拆分,更容易做到高性能和可扩展性
4、查询本身效率也会提升
5、可以减少冗余记录的查询
6、哈希关联

相关文章

  • 第三个模块 MySQL-UUID、分词字典、MySQL全文索引

    论mysql5.7.13性能优化之索引优化mysql优化(1)show命令 慢查询日志 explain profi...

  • 9月17-MySQL性能优化

    MySQL性能优化策略 1、MySQL内核架构 2、索引原理与查询优化 加速MySQL高效查询数据的数据结构 二分...

  • MySQL性能调优

    MYSQL查询语句优化 mysql的性能优化包罗甚广: 索引优化,查询优化,查询缓存,服务器设置优化,操作系统和硬...

  • MySQL性能优化(慢查询)

    1 MySQL性能优化之慢查询 1.1 性能优化的思路 首先需要使用慢查询功能,去获取所有查询时间比较长的SQL语...

  • MySQL数据库优化总结

    《高性能MySQL》指导 性能优化1.表优化2.索引优化3.查询优化4.服务器优化5.系统与硬件优化 稳定优化1....

  • mysql性能优化-慢查询分析、优化索引和配置

    mysql性能优化-慢查询分析、优化索引和配置 分类:Mysql/postgreSQL 目录 一、优化概述 二、查...

  • 深入学习MySQL优化

    MySQL高性能优化实战总结 MySQL 的查询过程如下图,很多的查询优化工作实际上就是遵循一些原则。 优化的哲学...

  • mysql 查询性能优化【1】

    优化数据访问 1、是否向数据库请求了不需要的数据 2、Mysql 是否在扫描额外的记录 ···响应时间:服务时间和...

  • Day3:MySQL查询基础-查询执行过程

    写在前面为MySQL能够以更高性能执行查询,最优办法是清楚MySQL是如何优化和执行查询。下图展示了MySQL查询...

  • 17.MySQL优化

    《高性能MySQL》——这本书都有的 “字段”优化总结 “索引”优化总结 索引的优化 “查询SQL”优化总结 “引...

网友评论

      本文标题:mysql 查询性能优化【1】

      本文链接:https://www.haomeiwen.com/subject/aytruxtx.html