mysql查看数据库cpu使用率(CPU 以及内存从哪些方面影响 MySQL 性能?)
mysql查看数据库cpu使用率
CPU 以及内存从哪些方面影响 MySQL 性能?
影响 MySQL 性能的因素很多,今天咱们来看看 CPU 和内存是如何影响 MySQL 性能的,以及我们在购买服务器的时候,该如何挑选这些配置。
CPU
在挑选数据库服务器的时候,是买多核 CPU 还是高主频 CPU?相信有小伙伴可能遇到过类似的问题,作为开发工程师,公司负责采购的小伙伴可能会向我们抛出上面这个问题,那么该如何回答呢?
有人说我既要多核又要高主频,抱歉,很多时候公司的预算都是有限的,没法做到鱼与熊掌兼得。这个时候我们就需要了解一点 MySQL 的运行机制了,根据 MySQL 的运行机制来确定到底该选什么样的 CPU!
首先我们要看我们的应用是不是 CPU 密集型,即是不是计算密集型。如果是 CPU 密集型应用,那么我们要加快 SQL 语句的处理速度,这个时候 CPU 的频率显然就比核数重要了。另外,MySQL 不支持多 CPU 对同一 SQL 并发处理,也就是说,不管 CPU 多强或多弱,我们只能用一个 CPU 核心来处理这一条 SQL,多个 CPU 对提高一个 SQL 的处理效率是没有帮助的。
如果我们要提高系统的并发量,这个时候就要考虑 CPU 的核数问题了。多个 CPU 虽然无法提高一条 SQL 的执行效率,但是可以提高 SQL 的并发量,在同一时间,一个 CPU 可以处理一条 SQL,那么要是有 10 个 CPU 就可以同时处理 10 条 SQL,这样就可以有效提高 QPS。
现在小伙伴们出去找工作,很多互联网公司都是用的 MySQL,这种互联网应用最大的特征就是高并发,那么毫无疑问,对于这种应用,我们应该考虑多核 CPU。
老版本的 MySQL 对于多核 CPU 的支持并不完美,所以如果我们选择多核 CPU,应该考虑使用目前最新版的 MySQL,最新版的 MySQL 对多核 CPU 的支持更加流畅。
另外大家还需要注意不要在 64 位的 CPU 上运行 32 位的服务器。
内存
内存的磁盘 IO 肯定是大于硬盘的,所以如果能将数据缓存在内存中,这样就不用每次去硬盘中读取数据了,这样的话,数据库的效率必然还要再提升一个台阶。
内存对数据库性能的影响有两方面:
- 读取效率,从内存中读取数据肯定比从硬盘中读取数据要快。
- 写入效率,当内存比较大的时候,我们需要往硬盘中写数据的时候,就不用每次都写,可以先缓存着,攒够了再一次性写入(延缓写入)。
不过我们也不能盲目的加内存,还是要在了解 MySQL 运行机制的前提下,合理加内存。
以常见的 MyISAM 和 InnoDB 存储引擎为例:
- MyISAM 会将索引存入缓存,而数据存储交由操作系统处理。
- InnoDB 会同时在内存中缓存数据和索引,从而提高数据库的运行效率。
所以,如果我们选择不同的存储引擎,对内存的要求也是不一样的。
另一方面需要注意,生产服务器的内存一般都比较大,如果服务器的内存是 128G,数据库文件只有 50G,此时发现数据库运行很慢,那么很明显,这个时候加内存肯定是无法解决问题的,还是要具体问题具体分析。
另外在选择内存时选择服务器主板支持的最大内存频率,尽量不要选择不同品牌的内存混用;如果需要多个内存条,要确保不同内存条的频率、电压、校验技术、型号等相同,同时单个内存条容量也要尽可能大(不过话说回来,如果购买云服务器,可能并不需要考虑这些)。
好啦,今天就和小伙伴们随便扯一扯,当然影响 MySQL 性能的还有其他因素,咱们后面接着聊。
原文链接:https://mp.weixin.qq.com/s/fqLoKPhhkWN_OOhGjZKeQw
- mysql多核cpu利用(mysql CPU高负载问题排查)
- mysql 双主双备(MySQL配置了双主,是如何避免出现数据回环冲突的)
- 5.6以上版本mysql数据复制(MySQL5.7并行复制原理及实现)
- mysql分组函数入门(详解MySQL 数据分组)
- 怎么将mysql彻底卸载(如何把Mysql卸载干净亲测有效)
- mysql怎样建立索引(MySQL创建索引需要了解的)
- mysql 排序源码(MySQL排序原理和案例详析)
- php考试复习题(php+mysql开发的最简单在线题库在线做题系统完整案例)
- mysql表结构设计分享(MySql开发之自动同步表结构)
- mysql中怎么删除整张表(MySQL如何优雅的删除大表实例详解)
- mysql创建用户并给用户授权(MySQL 主从复制中创建复制用户的时机探讨)
- mysql常用的sql语句大全(mysql建表常用的sql语句汇总)
- mysql字段和关键字(mySQL之关键字的执行优先级讲解)
- mysqlcount使用方法(详解 MySQL中count函数的正确使用方法)
- mysql数据库的备份与恢复的方法(详解Mysql之mysqlbackup备份与恢复实践)
- mysql添加注释视图(mysql创建表添加字段注释的实现方法)
- 杯酒人生---瓦伦丁酒杯和奥丁格啤酒(杯酒人生---瓦伦丁酒杯和奥丁格啤酒)
- 中秋节买啤酒,预算超过7元试试这8种啤酒,麦香浓郁都是真啤酒(预算超过7元试试这8种啤酒)
- CellPress旗下的6 期刊,国人友刊来了解一下吧(CellPress旗下的6期刊国人友刊来了解一下吧)
- ()
- SCI检索 SSCI检索 EI检索 ISTP检索 CSCD检索简介(SCI检索SSCI检索EI检索)
- 参考文献里期刊名称的写法,你知道吗(参考文献里期刊名称的写法)
热门推荐
- javascript执行类的所有方法(Javascript中异步等待的深入理解)
- sqlserver基础数据类型(SQL Server中T-SQL 数据类型转换详解)
- docker 重置容器的映射端口(运行中的docker容器端口映射如何修改详解)
- python pandas 匹配值(python 使用pandas计算累积求和的方法)
- jquery图片轮播代码
- php查找文件存在(php判断目录存在的简单方法)
- 小程序实现购物车功能前后端代码(小程序实现购物车完整版)
- 云服务器地域(为什么云服务器要按地域选择?)
- apache服务器的主配置(Apache中.htaccess文件功能)
- phpstudymysql数据库启动不了(phpstudy mysql启动不了的解决方法)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9