广告
返回顶部
首页 > 资讯 > 数据库 >mysql的性能如何实现优化
  • 735
分享到

mysql的性能如何实现优化

2024-04-02 19:04:59 735人浏览 安东尼
摘要

下文给大家带来关于Mysql的性能如何实现优化,感兴趣的话就一起来看看这篇文章吧,相信看完mysql的性能如何实现优化对大家多少有点帮助吧。MYsql性能优化 慢查询分析1)性能瓶颈定位Show 命令&nb

下文给大家带来关于Mysql的性能如何实现优化,感兴趣的话就一起来看看这篇文章吧,相信看完mysql的性能如何实现优化对大家多少有点帮助吧。

MYsql性能优化 慢查询分析

1)性能瓶颈定位

Show 命令 慢查询日志 explain 分析查询  profiling 分析查询

2)索引及查询优化 3)配置优化

MySQL 数据库是常见的两个瓶颈是 CPU 和 I/O 的瓶颈,CPU 在饱和的时候一般发生在数据装入内存或从磁盘上读取数据时候。

可以用mpstat, iOStat, sar 和 vmstat 来查看系统的性能状态。

mysql的性能如何实现优化

iostat,

mysql的性能如何实现优化

mysql的性能如何实现优化

优化数据库的性

能,通常有三种:使用索引,使用 EXPLAIN 分析查询以及调整 MySQL 的内部配置。

1 、 查询与索引优化分析

在优化 MySQL 时,通常需要对数据库进行分析EXPLAIN 分析查询,profiling 分析以及 show 命令查询系统状态及系统变量,通过定位分析性能的瓶颈,才能更好的优化数据库系统的性能。

查看 MySQL云服务器配置信息 mysql> show variables;

查看 MySQL云服务器运行的各种状态值 mysql> show global status;

# mysqladmin variables -u username -ppassWord——显示系统变量

mysql的性能如何实现优化

# mysqladmin extended-status -u username -ppassword——显示状态信息

mysql的性能如何实现优化

比较全的 show 命令的使用可参考:mysql>help show

Http://dev.mysql.com/doc/refman/5.7/en/show.html

慢查询日志开启:

在配置文件 my.cnf 中在 [mysqld] 一行下面加入 3 个配置参数,并重启 mysql 服务

slow_query_log = 1 //0 关闭 1 开启

slow_query_log_file = /usr/local/mysql/data/slow-query.log //慢查询日志存放地点

long_query_time = 1 //表示查询超过 1 秒才记录

在 my.cnf 中添加 log-queries-not-using-indexes 参数,表示向慢查询日志中记录下没有使用索引的查询。

二 查看慢查询的设置信息

mysql> show variables like '%slow_query_log%';

mysql的性能如何实现优化

mysql> show variables like '%long_query_time%';

化这个 sql 查询语句

mysql> select * from test1.tb1 where entertime < '2016-9-3' or entertime > '2016-9-3';

explain 分析查询

使用 EXPLAIN 关键字可以模拟优化器执行 SQL 查询语句,从而知道 MySQL 是如何处理你的

SQL 语句的。

mysql的性能如何实现优化

explain 模拟优化器执行 sql 语句来看是没有使用索引查询的,而是全表扫描

优化方法:在 stuname 列上创建索引

mysql> create index index_stuname on test1.tb1(stuname);

再次执行 explain

mysql> explain select * from test1.tb1 where stuname='admin'\G;

mysql的性能如何实现优化

profiling 分析查询

通过慢日志查询可以知道哪些 SQL 语句执行效率低下,通过 explain 我们可以得知 SQL 语句具体执行情况,索引使用等,还可以结合 show 命令查看执行状态。

mysql的性能如何实现优化mysql的性能如何实现优化

select @@profiling; //0 表示未开启

mysql的性能如何实现优化

执行要测试的 sql 语句

mysql> select * from test1.tb1 where stuname='admin' and entertime='2016-9-1';

 

mysql> show profiles\G; //可以得到被执行的 SQL 语句的时间和 ID

status:是 profile 里的状态,duration:是 status 状态下的耗时。

   Mysql配置优化

Mysql 参数优化对于不同的网站,及其在线量,访问量,帖子数量,网络情况,以及机器硬件配置都有关系,优化不可能一次性完成,需要不断的观察以及调试才有可能得到最佳效果。

1) 连接请求的变量:

1. max_connections

数值过小会经常出现 ERROR 1040: Too many connections 错误,可以过 mysql> show status like

'connections';通配符查看当前状态的连接数量(试图连接到MySQL(不管是否连接成功)的连接数),以定夺该值的大小。

mysql的性能如何实现优化

最大连接数

mysql的性能如何实现优化

max_used_connections / max_connections * 100% (理想值≈ 85%)

如果 max_used_connections 跟 max_connections 相同那么就是 max_connections 设置过低或者超过云服务器负载上限了,低于 10%则设置过大。

2.back_log

MySQL 能暂存的连接数量。当主要 MySQL 线程在一个很短时间内得到非常多的连接请求,它就会起作用。

如何设置 back_log?

修改/etc/my.cnf 文件,在[mysqld]下面添加如下内容,如设置最大连接数为 1024back_log = 数值  重启

3.wait_timeout 和 interactive_timeout

wait_timeout -- 指的是 MySQL在关闭一个非交互的连接之前所要等待的秒数interactive_time -- 指的是 mysql 在关闭一个交互的连接之前所要等待的秒数。

wait_timeout:

(1)如果设置大小,那么连接关闭的很快,从而使一些持久的连接不起作用

(2)如果设置太大,容易造成连接打开时间过长,在 show processlist 时,能看到太多的 sleep

状态的连接,从而造成 too many connections 错误

3)一般希望 wait_timeout 尽可能地低

interactive_timeout 的设置将要对你的 WEB application 没有多大的影响

查看 wait_timeout 和 interactive_timeout

mysql> show variables like '%wait_tmeout%';

mysql的性能如何实现优化

mysql> show variables like '%interactive_timeout%';

mysql的性能如何实现优化

如何设置 wait_timeout 和 interactive_timeout ?

修改/etc/my.cnf 文件,在[mysqld]下面添加如下内容

 wait_timeout=100

interactive_timeout=100

重启 MySQL Server 进入后,查看设置已经生效。

 全局缓冲:

4.key_buffer_size

key_buffer_size 指定索引缓冲区的大小,它决定索引处理的速度,尤其是索引读的速度。通过检查状态值 Key_read_requests 和 Key_reads,可以知道 key_buffer_size 设置是否合理。

mysql的性能如何实现优化

一共有 6 个索引读取请求,有 3 个请求在内存中没有找到直接从硬盘读取索引,计算索引未命中缓存的概率:

key_buffer_size 只对 MyISAM 表起作用。即使你不使用 MyISAM 表,但是内部的临时磁盘表是 MyISAM 表,也要使用该值。可以使用检查状态值 created_tmp_disk_tables 

mysql的性能如何实现优化

调整 key_buffer_size

默认配置数值是 8388608(8M),主机有 4GB 内存,可以调优值为 268435456(256MB)修改/etc/my.cnf 文件,在[mysqld]下面添加如下内容

5. query_cache_size(查询缓存简称 QC)

使用查询缓冲,MySQL 将查询结果存放在缓冲区中,今后对于同样的 SELECT 语句(区分大小写),将直接从缓冲区中读取结果。

mysql的性能如何实现优化

如果该值显示较大,则说明 Query Cache 中的内存碎片较多了,FLUSH QUERY CACHE 会对缓存中的碎片进行整理

Qcache_queries_in_cache:当前 Query Cache 中 cache 的 Query 数量;Qcache_total_blocks:当前 Query Cache 中的 block 数量;。查询云服务器关于 query_cache 的配置:

mysql的性能如何实现优化

query_cache_limit:超过此大小的查询将不缓存

query_cache_min_res_unit:缓存块的最小大小 ,query_cache_min_res_unit 的配置是一柄”双刃剑”,默认是 4KB,设置值大对大数据查询有好处,但如果你的查询都是小数据查询,就容易造成内存碎片和浪费。

在优化之前执行 mysqlslap 工具进行测试

mysql的性能如何实现优化

优化之后执行 mysqlslap 工具进行测试

mysql的性能如何实现优化

看了以上关于mysql的性能如何实现优化详细内容,是否有所收获。如果想要了解更多相关,可以继续关注我们的数据库板块。

您可能感兴趣的文档:

--结束END--

本文标题: mysql的性能如何实现优化

本文链接: https://www.lsjlt.com/news/36071.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • mysql的性能如何实现优化
    下文给大家带来关于mysql的性能如何实现优化,感兴趣的话就一起来看看这篇文章吧,相信看完mysql的性能如何实现优化对大家多少有点帮助吧。MYSQL性能优化 慢查询分析1)性能瓶颈定位Show 命令&nb...
    99+
    2022-10-18
  • MySQL性能优化如何实现
    这篇文章将为大家详细讲解有关MySQL性能优化如何实现,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一般来说,要保证数据库的效率,要做好以下四个方面的工作:数据库表设计S...
    99+
    2022-10-18
  • 如何实现Mysql数据库性能优化
    这篇文章主要为大家展示了“如何实现Mysql数据库性能优化”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何实现Mysql数据库性能优化”这篇文章吧。对表进行水...
    99+
    2022-10-19
  • 如何优化MYSQL性能
    本篇文章给大家分享的是有关如何优化MYSQL性能,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。  1. MySQL性能优化简介  在Web应用...
    99+
    2022-10-18
  • MySQL如何优化性能
    本文小编为大家详细介绍“MySQL如何优化性能”,内容详细,步骤清晰,细节处理妥当,希望这篇“MySQL如何优化性能”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。- MySQL服...
    99+
    2022-10-19
  • mysql的性能该如何优化
    下文给大家带来有关mysql的性能该如何优化内容,相信大家一定看过类似的文章。我们给大家带来的有何不同呢?一起来看看正文部分吧,相信看完mysql的性能该如何优化你一定会有所收获。文件系统: 优化...
    99+
    2022-10-18
  • 如何实现MySQL底层优化:日志系统的优化与性能提升
    MySQL是目前最流行的关系型数据库管理系统之一,作为网站及应用程序后端的核心组件,其性能优化显得尤为关键。其中,日志系统是MySQL的重要组成部分,其性能对数据库的整体性能影响极大。因此,本文将深入讨论MySQL日志系统的优化和性能提升。...
    99+
    2023-11-08
    MySQL 优化 日志
  • 如何优化MySQL的查询性能?
    如何优化MySQL的查询性能?MySQL是一款广泛应用于Web开发的关系型数据库管理系统。然而,在处理大量数据和复杂查询时,MySQL的查询性能可能会受到影响,从而导致应用程序的响应时间变慢。为了提高MySQL的查询性能,我们可以采取以下几...
    99+
    2023-10-22
    索引优化 数据库缓存 查询重写
  • 如何解析MySQL性能优化中的SQL优化
    如何解析MySQL性能优化中的SQL优化,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。注:以 MySQL 为背景,很多内容同时适用于其他关系型...
    99+
    2022-10-19
  • 如何对MySQL性能实现调优
    本文主要给大家简单讲讲如何对MySQL性能实现调优,相关专业术语大家可以上网查查或者找一些相关书籍补充一下,这里就不涉猎了,我们就直奔主题吧,希望如何对MySQL性能实现调优这篇文章可以给大家带来一些实际帮...
    99+
    2022-10-18
  • 如何优化MySQL数据库的性能?
    如何优化MySQL数据库的性能?在现代信息时代,数据已经成为企业和组织的重要资产。作为最常用的关系型数据库管理系统之一,MySQL在各行各业都广泛地应用着。然而,随着数据量的增长和负载的增加,MySQL数据库的性能问题也逐渐凸显。为了提高系...
    99+
    2023-10-22
    索引优化 查询优化 缓存优化
  • 如何实现MySQL底层优化:表设计规范与性能优化技巧
    如何实现MySQL底层优化:表设计规范与性能优化技巧在数据库管理系统中,MySQL是一种常用的关系型数据库。在开发过程中,合理设计数据库表结构和优化数据库性能至关重要。本文将从表设计规范和性能优化技巧两个方面,介绍如何实现MySQL底层优化...
    99+
    2023-11-08
    性能优化技巧 表设计 底层优化 MySQL底层优化关键词:MySQL
  • iOS如何实现图形性能优化
    这篇文章将为大家详细讲解有关iOS如何实现图形性能优化,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。引言当一个产品渐渐成熟,我们便开始重视产品性能的优化。而这其中图形性能的优化在iOS客户端占比较重要的部...
    99+
    2023-06-05
  • 如何优化MySQL数据库性能
    本篇内容介绍了“如何优化MySQL数据库性能”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!MySQL 性能...
    99+
    2022-10-18
  • 如何实现MySQL底层优化:数据库分布式架构和性能优化
    抱歉,我无法满足你的要求。...
    99+
    2023-11-08
    性能优化 分布式架构 MySQL优化
  • mysql性能优化的示例
    小编给大家分享一下mysql性能优化的示例,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!历史很久远的一篇文章了,不记得是从哪里记...
    99+
    2022-10-18
  • 如何实现MySQL底层优化:事务锁的性能优化和避免死锁的方法
    如何通过事务锁的性能优化和避免死锁来实现MySQL底层优化导言:在MySQL数据库中,事务锁起着至关重要的作用。如果事务锁的性能不好或者存在死锁,将严重影响数据库的性能和稳定性。因此,本文将重点介绍如何通过优化事务锁的性能和避免死锁来实现M...
    99+
    2023-11-08
    MySQL 优化 死锁 事务锁
  • MySQL 高性能优化实战总结
    如图 - MySQL 查询过程 优化有风险,涉足需谨慎 1、优化的哲学 1.1、优化可能带来的问题 优化不总是对一个单纯的环境进行,还很可能是一个复杂的已投产的系统。 优化手段本来就有很大的风险,只不过你没能力意识到和预见到! 任何的技...
    99+
    2017-04-23
    MySQL 高性能优化实战总结
  • MySQL中如何优化数据库性能
    这篇文章给大家介绍MySQL中如何优化数据库性能,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。  关键参数一:back_log  要求 MySQL 能有的连接数量。当主要MySQL线程...
    99+
    2022-10-18
  • 如何实现MySQL底层优化:缓存机制的高级应用和性能优化策略
    抱歉,由于涉及专业的技术性内容和代码示例,我无法在当前平台上提供1200字以内的详实文段。你可以在专业的技术网站或者数据库技术书籍上寻求帮助。...
    99+
    2023-11-08
    缓存 MySQL 优化
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作