注册 登录
  • 欢迎访问"运维那点事",推荐使用Google浏览器访问,可以扫码关注本站的"微信公众号"。
  • 如果您觉得本站对你有帮助,那么可以扫码捐助以帮助本站更好地发展。

标签:MySQL性能优化

MySQL InnoDB

优化InnoDB磁盘I/O

优化InnoDB磁盘I/O 如果你遵循数据库设计和调优技术的最佳做法,但由于磁盘I/O活动较大,你的数据库仍然很慢,请考虑这些磁盘I/O优化。如果top工具显示你的CPU使用率百分比低于70%,则你的工作负载可能是磁盘导致的。几种优化方式如下: 增加缓冲池大小 当表数据缓存在InnoDB缓冲池中时,可以通过查询重复访问,而不需要任何磁盘I/O。使用inn……继续阅读 »

彭东稳 3个月前 (09-04) 1007浏览 0评论 1个赞

MySQL

针对SSD的MySQL IO优化

现在数据库标配基本都是SSD了,在使用SSD之前,对SSD进行了充分的测试,这其中当然包括最为关键的性能测试部分。下面就跟大家分享一下在SSD性能测试过程中遇到的一个问题和解决问题的思路。 我们的性能测试使用的测试工具是Sysbench,测试场景主要包括5类:全内存非事务更新(nontrx)、全内存事务更新(complex)、非全内存查询(select)、非……继续阅读 »

彭东稳 4个月前 (08-24) 966浏览 0评论 1个赞

MySQL InnoDB

MySQL InnoDB Buffer Pool

一、InnoDB缓冲池 用户对数据库的最基本要求就是能高效的读取和存储数据,但是读写数据都涉及到与低速的设备交互,为了弥补两者之间的速度差异,所有数据库都有缓存池,用来管理相应的数据页,提高数据库的效率,当然也因为引入了这一中间层,数据库对内存的管理变得相对比较复杂。 InnoDB维护一个称为缓冲池的内存存储区域 ,用于缓存内存中的数据和索引。了解InnoD……继续阅读 »

彭东稳 7个月前 (05-25) 2729浏览 2评论 5个赞

MySQL InnoDB

MySQL InnoDB缓冲池预读

InnoDB在I/O的优化上有个比较重要的特性为预读,预读请求是一个i/o请求,它会异步地在缓冲池中预先回迁多个页面,预计很快就会需要这些页面,这些请求在一个范围内引入所有页面。InnoDB以64个page为一个extent,那么InnoDB的预读是以page为单位还是以extent? 这样就进入了下面的话题,InnoDB使用两种预读算法来提高I/O性能:线……继续阅读 »

彭东稳 7个月前 (05-24) 1452浏览 0评论 1个赞

MySQL

MySQL客户端连接管理

MySQL连接管理器线程负责处理服务器侦听的网络接口上的客户端连接请求。连接管理器线程将每个客户端连接与专用于它的线程相关联,以处理该连接的身份验证和请求处理。 连接管理线程在必要时创建一个新线程,但是会先尝试避免这样做,首先查看线程缓存,看它是否包含可用于连接的线程。当连接结束时,如果缓存未满,则其线程返回到线程缓存中,用于下次使用。 在这种连接线​​程模……继续阅读 »

彭东稳 7个月前 (05-23) 1059浏览 0评论 1个赞

MySQL

使用mysqldumpslow工具分析MySQL慢查询

一、MySQL慢查询日志 MySQL慢查询日记用于记录SQL语句查询时间大于MySQL变量中定义的时间,以及可以选择定义记录没有使用索引的SQL查询语句。DBA可以通过慢查询日志来找出有问题的SQL语句,对其进行优化。MySQL慢查询日志默认关闭状态,所以需要通过参数slow_query_log=1开启慢查询日志,并通过long_query_time参数定义……继续阅读 »

彭东稳 7个月前 (05-19) 1268浏览 0评论 3个赞

MySQL InnoDB

MySQL索引最左前缀原理与优化

一、示例数据库 为了讨论索引策略,需要一个数据量不算小的数据库作为示例。本文选用MySQL官方文档中提供的示例数据库之一:employees。这个数据库关系复杂度适中,且数据量较大。下图是这个数据库的E-R关系图(引用自MySQL官方手册): MySQL官方文档中关于此数据库的页面为https://dev.mysql.com/doc/employee/en……继续阅读 »

彭东稳 9个月前 (03-27) 1616浏览 0评论 2个赞

MySQL

为什么推荐InnoDB引擎使用自增主键?

在使用InnoDB存储引擎时,如果没有特别的需要,请永远使用一个与业务无关的自增字段作为主键,除非高并发写入操作可能需要衡量自增主键或有业务安全性要求,后面会讲。 经常看到有帖子或博客讨论主键选择问题,有人建议使用业务无关的自增主键,有人觉得没有必要,完全可以使用如学号或身份证号这种唯一字段作为主键。不论支持哪种论点,大多数论据都是业务层面的。如果从数据库索……继续阅读 »

彭东稳 9个月前 (03-26) 1763浏览 0评论 5个赞

MySQL

MySQL性能优化之ICP功能测试

一、SQL的where条件提取规则 在Index Condition Pushdown (ICP)特性之前,必须先搞明白根据何登成大神总结出一套放置于所有SQL语句而皆准的where查询条件的提取规则:所有SQL的where条件,均可归纳为3大类:Index Key (First Key & Last Key),Index Filter,Table ……继续阅读 »

彭东稳 9个月前 (03-25) 1464浏览 0评论 1个赞

MySQL

MySQL使用profile分析SQL语句执行过程

分析SQL执行带来的开销是优化SQL的重要手段。在MySQL数据库中,可以通过配置profiling参数来启用SQL剖析。该参数可以在全局和session级别来设置。对于全局级别则作用于整个MySQL实例,而session级别紧影响当前session。该参数开启后,后续执行的SQL语句都将记录其资源开销,诸如IO,上下文切换,CPU,Memory等等。根据这……继续阅读 »

彭东稳 9个月前 (03-24) 1355浏览 0评论 1个赞

MySQL

MySQL 5.7内存使用分析

MySQL如何使用内存? 首先,介绍MySQL使用内存的一些方法: 1. 会话级别的内存消耗(连接私有内存):如sort_buffer_size等,每个会话都会开辟一个sort_buffer_size来进行排序操作。 2. 全局的内存消耗(共享内存):例如:innodb_buffer_pool_size等,全局共享的内存段。 MySQL内存计算器:http:……继续阅读 »

彭东稳 11个月前 (01-19) 4189浏览 0评论 1个赞