当前位置:首页 > 数码 > Innodb-MySQL性能飙升的秘密武器 (innodb怎么读)

Innodb-MySQL性能飙升的秘密武器 (innodb怎么读)

admin7个月前 (05-03)数码33

Innodb_lru_scan_depth 参数是 MySQL InnoDB 存储引擎中一个重要的配置,它控制着 LRU(最近最少使用)算法的扫描深度。LRU 算法用于管理 InnoDB 缓冲池中的页,以确定哪些页应该保留在内存中,哪些应该被淘汰出去。调整 innodb_lru_scan_depth 参数可以优化数据库性能,特别是在缓冲池管理方面。

innodb_lru_scan_depth 的作用

Innodb_lru_scan_depth 参数指定了 InnoDB 在进行 LRU 扫描时要检查的页数。较大的值可以使 InnoDB 更深地检查缓冲池中的页,但也会增加 LRU 扫描的开销。通过调整这个参数,可以在性能和内存使用之间找到平衡点。

修改 innodb_lru_scan_depth 参数的影响

修改 innodb_lru_scan_depth 参数后,数据库会经历一些变化,特别是在缓冲池管理方面。下面是可能的变化:

  • 缓冲池中的页淘汰行为:较大的 innodb_lru_scan_depth 值可以让 InnoDB 更有效地淘汰不常用的页,从而提高缓冲池的命中率。
  • LRU 扫描的效率:较大的 innodb_lru_scan_depth 值会增加 LRU 扫描的开销,因为 InnoDB 需要检查更多的页。在内存较少的情况下,这可能会对整体性能产生负面影响。
  • 系统负载:较大的 innodb_lru_scan_depth 值可能会增加系统负载,因为 InnoDB 需要花费更多的时间来进行 LRU 扫描。在繁忙的系统中,这可能会导致性能下降。
MySQL性能飙升的秘密武器

简单案例

如果一个火爆的电商平台中的商品、订单信息频繁被查询,但发现缓冲池命中率低,热点数据不在内存中。这时,innodb_lru_scan_depth 就是你提升性能的秘密武器。

备份配置文件:

数据库参数调整前都建议先备份配置文件以及当前数据库中的参数值(因为可能修改后没修改配置文件)。
  

查询当前值:

使用以下 SQL 语句查询当前 innodb_lru_scan_depth 参数值。
mysql> SHOW GLOBAL VARIABLES LIKE innodb_lru_scan_depth;
  

修改参数:

根据实际情况使用以下 SQL 语句修改参数值。
mysql> SET GLOBAL innodb_lru_scan_depth=2048;
mysql> SHOW GLOBAL VARIABLES LIKE innodb_lru_scan_depth;
  

验证效果:

通过监控工具、性能测试或数据库日志,验证数据库主机及数据库运行情况,如果内存依旧剩余较多,可以继续逐步调整
  

小结

(1)何时调整

  • 缓冲池命中率低时
  • 热点数据不在内存中时
  • 系统负载较低时

(2)注意事项

  • 调整 innodb_lru_scan_depth 参数时,需要考虑系统的实际情况和性能需求。
  • 过大的 innodb_lru_scan_depth 值可能会增加系统负载和 LRU 扫描开销。
  • 修改 innodb_lru_scan_depth 参数后,需要监控数据库的性能和资源使用情况,并根据需要进行进一步调整。

合理调整 innodb_lru_scan_depth 参数可以有效优化 MySQL InnoDB 数据库的性能。通过在性能和内存使用之间找到平衡点,可以提高缓冲池命中率,减少不必要的页淘汰,从而提升整体数据库性能。


mysql 何时使用myisam,何时使用innodb?

1、MyISAM管理非事务表。它提供高速存储和检索,以及全文搜索能力。如果应用中需要执行大量的SELECT查询,那么MyISAM是更好的选择。

2、InnoDB用于事务处理应用程序,具有众多特性,包括ACID事务支持。如果应用中需要执行大量的INSERT或UPDATE操作,则应该使用InnoDB,这样可以提高多用户并发操作的性能。

扩展资料:

MyISAM和InnoDB主要区别:

1、MyISAM是非事务安全型的,而InnoDB是事务安全型的。

2、MyISAM锁的粒度是表级,而InnoDB支持行级锁定。

3、MyISAM支持全文类型索引,而InnoDB不支持全文索引。

4、MyISAM相对简单,所以在效率上要优于InnoDB,小型应用可以考虑使用MyISAM。

5、MyISAM表是保存成文件的形式,在跨平台的数据转移中使用MyISAM存储会省去不少麻烦。

6、InnoDB表比MyISAM表更安全,可以在保证数据不会丢失的情况下,切换非事务表到事务表。

怎么理解 MySQL 常见的两种存储引擎:MyISAM与InnoDB?

InnoDB 引擎:InnoDB 引擎提供了对数据库 acid 事务的支持,并且还提供了行级锁和外键的约束,它的设计的目标就是处理大数据容量的数据库系统。 MySQL 运行的时候,InnoDB 会在内存中建立缓冲池,用于缓冲数据和索引。 但是该引擎是不支持全文搜索,同时启动也比较的慢,它是不会保存表的行数的,所以当进行 select count() from table 指令的时候,需要进行扫描全表。 由于锁的粒度小,写操作是不会锁定全表的,所以在并发度较高的场景下使用会提升效率的。 MyIASM 引擎:MySQL 的默认引擎,但不提供事务的支持,也不支持行级锁和外键。 因此当执行插入和更新语句时,即执行写操作的时候需要锁定这个表,所以会导致效率会降低。 不过和 InnoDB 不同的是,MyIASM 引擎是保存了表的行数,于是当进行 select count() from table 语句时,可以直接的读取已经保存的值而不需要进行扫描全表。 所以,如果表的读操作远远多于写操作时,并且不需要事务的支持的,可以将 MyIASM 作为数据库引擎的首选。 MyISAM是MySQL的默认数据库引擎(5.5版之前)。 虽然性能极佳,而且提供了大量的特性,包括全文索引、压缩、空间函数等,但MyISAM不支持事务和行级锁,而且最大的缺陷就是崩溃后无法安全恢复。 不过,5.5版本之后,MySQL引入了InnoDB(事务性数据库引擎),MySQL 5.5版本后默认的存储引擎为InnoDB。 大多数时候我们使用的都是 InnoDB 存储引擎,但是在某些情况下使用 MyISAM 也是合适的比如读密集的情况下。

免责声明:本文转载或采集自网络,版权归原作者所有。本网站刊发此文旨在传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及版权、内容等问题,请联系本网,我们将在第一时间删除。同时,本网站不对所刊发内容的准确性、真实性、完整性、及时性、原创性等进行保证,请读者仅作参考,并请自行核实相关内容。对于因使用或依赖本文内容所产生的任何直接或间接损失,本网站不承担任何责任。

标签: MySQL

“Innodb-MySQL性能飙升的秘密武器 (innodb怎么读)” 的相关文章

MySQL-一探究竟-核心模块揭秘 (mysql-bin文件可以删除吗)

MySQL-一探究竟-核心模块揭秘 (mysql-bin文件可以删除吗)

Undo Segment Caching To improve the efficiency of undo segmentallocation, InnoDB caches some un...

优化数据统计的终极指南-MySQL-提升查询性能的秘诀 (优化数据统计工具)

优化数据统计的终极指南-MySQL-提升查询性能的秘诀 (优化数据统计工具)

在业务场景中,我们经常需要统计当前已有的业务数据,例如商品库内商品的数量、每天的用户订单数量等。此时,我们需要使用统计功能来实现。 count()实现方式 对于不同的数据库引擎,co...

主从复制原理简介-MySQL (主从复制原理mysql)

主从复制原理简介-MySQL (主从复制原理mysql)

主从复制(Master-SlaveReplication)是一种数据复制技术,用于在多个数据库主机之间的数据同步。在主从复制架构中,一个主机被设置为主主机(Master),充任数据源,其余主机被设...

全面指南-如何解决-MySQL-主从延时问题 (全面指导)

全面指南-如何解决-MySQL-主从延时问题 (全面指导)

一、什么是主从延时? 主从延时,是指从数据库从主数据库复制数据时产生的时间差。它会导致从库中的数据与主库不一致。 二、为什么会主从延时? 1. 主从复制原理 MySQL的...

如何在MySQL中成功数据的版本治理和回滚操作 (如何在mysql数据库中添加数据)

如何在MySQL中成功数据的版本治理和回滚操作 (如何在mysql数据库中添加数据)

成功数据的版本治理和回滚操作在中可以经过以下几种模式成功,包含经常使用事务、备份恢复、日志和版本控制工具等。上方将详细引见这些方法。 1.经常使用事务: MySQL允许事务操作,可以经...

核心模块-深入探索数据库引擎-MySQL-揭秘 (核心模块英文)

核心模块-深入探索数据库引擎-MySQL-揭秘 (核心模块英文)

简介 Savepoint 是 MySQL 中的一种机制,允许在事务中创建标记点,以便在事务失败时回滚到该标记点。Savepoint 的原理是将事务的当前状态存储在各种数据结构中,包括服务器层、b...

使用-数据库并自动发送备份文件到指定邮箱-K8s-定期备份-MySQL (使用数据库的命令)

使用-数据库并自动发送备份文件到指定邮箱-K8s-定期备份-MySQL (使用数据库的命令)

简介 本文档描述了一个使用脚本来监控服务器高占用率进程并通过电子邮件发送警报的项目。本文还探讨了使用相同机制备份数据库的可能性。 技术 Python psuti...

обеспечение-и-данных-MySQL锁机制-предотвращение-конфликтов-согласованности (翻译)

обеспечение-и-данных-MySQL锁机制-предотвращение-конфликтов-согласованности (翻译)

锁机制是一种通过对数据进行加锁来防止数据冲突和不一致的技术。MySQL 采用了两种类型的锁:共享锁和排他锁,以实现并发访问数据的同时保证数据的一致性。 共享锁 (SharedLock)...