当Mysql缓慢时,这几招可解燃眉之急

这篇具有很好参考价值的文章主要介绍了当Mysql缓慢时,这几招可解燃眉之急。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

第一步定位问题源:
常见的以查询Mysql性能问题的方法
1.大部分的性能问题都是查询过慢的问题,可以查询慢sql日志。
通过慢查询日志定位那些执行效率较低的SQL语句,用–log-slow-queries[= file_name]选项启动时,mysqld写一个包含所有执行时间超过long_query_time秒的SQL语句的日志文件。
long_query_time 可以在 my.cnf配置文件里设置
也可以直接设置 set global long_query_time=4

2.使用show processlist命令查看当前MySQL在进行的线程
包括线程的状态、是否锁表等,可以实时地查看 SQL 的执行情况,同时对一些锁表操作进行优化。
show processlist; 只列出前100条
show full processlist;列出全部线程情况
mysql regexp replace 导致查询变慢,mysql,数据库,服务器

3.排查机器内存,磁盘,IO,网络是否资源不够

(1) linux 系统命令
(2)free 命令 显示系统内存使用情况
(3)vmstat 命令 看到整个机器的CPU,内存,IO的使用情况
(4)top 命令 实时显示各个进程的资源占用情况

二、性能优化
1.使用索引的优点
(1)没有合适的索引匹配查询导致查询慢,
(2)使用索引的优点、大大减少了服务器需要扫描的数量,
(3)索引可以帮助服务器避免排序和临时表
(4)索引可以帮助将随机I/O变为顺序I/O
2.索引的类型:
(1)普通索引,普通单列索引
(2)唯一索引,具有唯一约束,可以有多个null
(3)组合索引,多个建组成的索引,使用需要查询符合最左匹配原则。
(4)全文索引,和B-tree索引不会冲突,全文索引适用于MATCH AGAINST 操作,而不是普通的WHERE条件操作。
(5)哈希索引

3.查询语句是否语句的执行计划是否使用了合适的索引。

(1)使用explain关键字查看语句的执行计划
使用方法:explain 【查询语句】
mysql regexp replace 导致查询变慢,mysql,数据库,服务器
key 列表示用到了那个索引。
rows列表示预计要扫描多少行。
一般来说扫描的行数越少速度越快。

(2)强制使用索引
use index 关键字 建议mysql使用索引,可以指定多个索引让mysql选择。

SELECT * FROM sys_user use index(id, idx_phone) WHERE phone = '123456';

ignore index 关键字 禁止mysql使用指定的索引,防止查询语句使用错误的索引,可指定多个索引。

SELECT * FROM sys_user ignore index(id, idx_email) WHERE phone = '123456';

force index 关键字 强制mysql使用指定索引进行查询。

SELECT * FROM sys_user force index(id, idx_email) WHERE phone = '123456';

4.索引如何挑选

(1)一般常用/高流量的查询条件上建索引。

(2)按照数据的区分度建索引。同样的在where条件中,区分度越高的列上建索引查询得更快。建立组合索引时,多个列将区分度高的列排前面。

(3)按照索引的功能建索引,如果字段有唯一性约束则建唯一索引。如果有多列是常用的筛选条件,那就用组合索引

5.索引失效的情况
(1)使用 or 关键字
(2)复合索引未用左列字段;
(3)like以%开头;
(4)需要类型转换;
(5)where中索引列有运算;
(6)where中索引列使用了函数;
(7)如果mysql觉得全表扫描更快时(数据少);

6.什么时候不建议用索引:
(1)唯一性差;
(2)频繁更新的字段不用(更新索引消耗);
(3)where中不用的字段;
(4)索引使用<>时,效果一般;

7.查询优化
优化数据访问
简单衡量查询开销的三个指标:
*响应时间
*扫描行数
*返回行数

(1)确认应用程序是否检索的太多不必要的数据,减少应用程序访问行和访问列。

(2)检查多表join in 时,是否返回了全部的列,只返回需要的列即可。

(3)使用合适索引减少扫描的行数。

(4)使用覆盖索引,避免回表查询。

(5)order by 排序操作和 group by 分组操作尽量使用索引,避免生成临时表和文件排序。

8.DML性能问题*
(1)避免死锁产生。
(2)分析语句在事务中将含有锁竞争的语句放到后面去执行。
(3)能用普通索引的就不用唯一索引,唯一索引用不上 change buffer 的优化机制。

9.数据库参数的优化:
(1)尽量把表字段设置为 not null,避免影响mysql的优化
(2)innodb_buffer_pool_size:调整InnoDB存储引擎的缓存池大小。

三、紧急情况下kill掉异常线程,保证mysql整体可用。

在使用mysql时,可能会发生死锁、应用端没有释放连接、大量的慢查询,占用大量数据库连接,导致mysql连接数不够,无法对外提供服务,处于不可用的状态,这时要kill掉那些异常连接保证数据库整体可用。

KILL命令的语法格式如下:
KILL [CONNECTION | QUERY] thread_id

批量kill 慢查询的方式
select concat(‘kill ‘, id,’;’) from information_schema.processlist where time > 3;文章来源地址https://www.toymoban.com/news/detail-775125.html

到了这里,关于当Mysql缓慢时,这几招可解燃眉之急的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python 行列转换这几招真的很棒啊

    大家好,本文介绍的是 Pandas 中4个行列转换的方法,包含: melt 转置T或者transpose wide_to_long explode(爆炸函数) 本文由技术群粉丝分享,项目源码、数据、技术交流提升,均可加交流群获取,群友已超过2000人,添加时最好的备注方式为:来源+兴趣方向,方便找到志同道合的朋

    2024年02月06日
    浏览(37)
  • 电脑上怎么进行pdf合并?这几招分分钟解决

    电脑上怎么进行pdf合并 ? 在现代办公中,PDF文件已经成为了我们处理文档的常用格式之一。有时候,我们需要将多个PDF文件合并成一个文件,以方便阅读或打印。那么,如何在电脑上进行PDF合并呢?下面就给大家介绍几种简单易行的方法,让你轻松搞定PDF合并。 方法一:使

    2024年01月20日
    浏览(39)
  • Adobe 观察 |最低工资标准来了,学会这几招,让加薪更简单

    最新调整后的全国各地区最低工资标准情况来了! 人力资源和社会保障部新发布的数据显示, 截至今年4月1日,共有15个地区第一档月最低工资标准在2000元及以上,分别是上海(2590元)、深圳(2360元)、北京(2320元)、广东(2300元)、江苏(2280元)、浙江(2280元)、河北

    2023年04月24日
    浏览(37)
  • mysql优化一般从这几个方面出发

    MySQL 优化是针对数据库性能和查询效率的一系列操作和策略,旨在提高数据库的响应速度、降低资源消耗,并优化查询执行计划。以下是一些常见的 MySQL 优化技巧: 1、 使用合适的数据类型:选择合适的数据类型可以节省存储空间和提高查询效率。尽量使用更小的数据类型,

    2024年02月15日
    浏览(49)
  • 对谈 | “计算机学神”闫令琪:我不希望别人说Rendering已经没东西可解了

    我还要继续学习图形学吗? 是继续在学术界钻研,还是进入工业界? 元宇宙的到来,就是图形学的春天了吗? 以上,是我们常在后台收到的问题。于是,2022年8月,GAMES104课程组邀请了王希、闫令琪、胡渊鸣三位清华图形学大佬进行一次对谈。希望通过他们的回答,带你窥见

    2023年04月14日
    浏览(70)
  • 6 个可解锁部分 GPT-4 功能的 Chrome 扩展(无需支付 ChatGPT Plus 费用)

      在过去的几个月里,我广泛探索了 ChatGPT 的所有可用插件。在此期间,我发现了一些令人惊叹的插件,它们改进了我使用 ChatGPT 的方式,但现在,我将透露一些您需要了解的内容。 借助 Chrome 扩展程序,所有 ChatGPT 用户现在都可以免费使用 ChatGPT Plus 的部分付费功能。这些

    2024年02月08日
    浏览(45)
  • AI绘画怎么弄?我来教你几招

    人工智能绘画工具近年来受到越来越多的关注和使用。这些工具利用机器学习和深度学习算法,可以自动生成艺术作品,使得绘画不再只是艺术家的专属领域。如果你对艺术感兴趣,但又不知道从何下手,那么使用AI绘画工具可能是一个不错的选择。但是,使用这些工具并不

    2024年02月09日
    浏览(45)
  • 电脑断电文件丢失如何找回?给你支几招!

    电脑断电文件丢失如何找回 ?我好不容易熬夜加班做的活动方案,正当将U盘文件转移到笔记本电脑的时候,没有注意笔记本的电量,在转移数据的过程中突然断电了。我的电脑一下子就“熄”了,方案都没来得及保存。这真是一个悲剧啊! 相信很多小伙伴在电脑突然断电丢

    2024年02月11日
    浏览(49)
  • ai写作怎么搞?我来教你几招

    在当今信息化时代,ai技术的发展已经进入到了一个全新的阶段,越来越多的人们开始运用ai技术进行写作。作为一种创新性的工具,ai写作已经成为了许多企业和个人写作必不可少的工具之一。但是,对于初学者来说,如何快速上手并掌握ai写作技巧却是一个较大的难题。那

    2024年02月09日
    浏览(39)
  • 教你几招在 Linux 中高效地查找目录

    在 Linux 操作系统中,查找目录是一项常见的任务。无论是系统管理员还是普通用户,都可能需要查找特定的目录以执行各种操作,如导航文件系统、备份数据、删除文件等。Linux 提供了多种命令和工具来帮助我们在文件系统中快速找到目标目录。本文将介绍几种常用的方法和

    2024年02月09日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包