`
sogotobj
  • 浏览: 648554 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

mysql几个和innodb相关的参数

 
阅读更多

今天有同事问了几个MySQL参数设置,这里简单记录一下:


innodb_thread_concurrency ,用于限制能够进入innodb层的线程数



当进入innodb层调用read_row/write_row/update_row/delete_row时,会检查已经进入innodb的线程数:innodb_srv_conc_enter_innodb
如果已经满了,就会等待innodb_thread_sleep_delay毫秒尝试一次
如果再次失败,则进入到一个FIFO队列sleep


当在innodb层完成操作后,会调用innodb_srv_conc_exit_innodb退出innodb层
当线程进入时,获得一段时间片innodb_concurrency_tickets,在时间片范围内,该线程就无需检测,直接进入innodb


理论上讲,我们可以把innodb_thread_concurrency设置为(cpu数+磁盘数)*2,但这需要取决于具体的应用场景


innodb_commit_concurrency ,用于限制在innodb层commit阶段的线程数,大多数情况下,默认值已经足够。
--------------------------
innodb_write_io_threads
用于写脏页的线程数
innodb_read_io_threads
用于从磁盘读文件块的线程数
thread_cache_size
线程在使用完成后,不是退出,而是存放到list中,这样减小了重复创建线程的开销,
这个值的设置应跟内存相关的:mem = (thread_cache_size) * (thread_stack)


max_connections
MySQL层最大允许的连接请求数,注意如果设置的过大,可能会引起很大的额外开销:线程切换开销。目前比较流行的优化方案是使用线程池来保存请求队列,建立有限的work线程来处理连接,换句话说,就算max_connections设置的再大,那也要受innodb_thread_concurrency的限制

————————————————————
参考:
《InnoDB thread concurrency》:http://www.mysqlperformanceblog.com/2006/06/05/innodb-thread-concurrency/
分享到:
评论

相关推荐

    MySQL 和 InnoDB 性能

    MySQL与InnoDB的性能受到运行环境的直接影响,主要包括以下几个方面: - **内存**:足够的RAM可以显著提高性能,特别是在缓冲池大小上。 - **CPU**:现代处理器通常具有多个核心,能够并行处理多个任务。 - **I/O**...

    MySQL8.0内存相关参数总结

    MySQL8.0内存相关参数是优化数据库性能的关键因素,它们决定了数据库如何管理和使用内存资源,以提高查询效率和系统稳定性。下面将详细解释几个重要的内存参数及其作用。 1. **innodb_buffer_pool_size**: 这是...

    innodb插件mysql

    InnoDB是MySQL数据库管理系统中的一个重要存储引擎,以其事务安全、行级锁定和ACID(原子性、一致性、隔离性和持久性)特性而闻名。InnoDB Plugin是InnoDB存储引擎的一个增强版本,旨在提供更高的性能、更灵活的功能...

    mysql备份innodb类型的表或数据库

    在进行MySQL数据库的备份操作时,特别是针对InnoDB存储引擎的表或数据库,采用正确的方法对于确保数据的一致性和完整性至关重要。本篇文章将详细解析如何通过`mysqldump`命令进行InnoDB类型的数据备份,并重点介绍...

    MySql innodb 引擎表存储分析

    - 分析结果显示,前几个页分别是文件空间头 (File Space Header)、插入缓冲位图 (Insert Buffer Bitmap) 和文件段节点 (File Segment inode)。 - 随后的页类型包括 B+树节点 (B-tree node),用于存储索引和数据。 ...

    MySQL修改innodb_data_file_path参数的一些注意事项

    MySQL中的`innodb_data_file_path`参数是用于配置InnoDB存储引擎的数据文件路径和大小的。这个参数至关重要,因为它决定了InnoDB表空间的布局和扩展方式。在默认情况下,如果未在配置文件(如my.cnf)中指定`innodb_...

    XtraDB、InnoDB 内部结构示意图

    从内容来看,文章主要围绕以下几个方面来讲解XtraDB和InnoDB的内部结构: 1. innodb_buffer_pool_size参数的重要性 文章首先强调了innodb_buffer_pool_size参数在MySQL配置中的关键性。这是因为它对InnoDB存储引擎...

    MySQL性能优化InnoDB buffer pool flush策略

    为了管理 buffer pool,每个 buffer pool instance 使用如下几个链表来管理: * LRU 链表包含所有读入内存的数据页; * Flush_list 包含被修改过的脏页; * unzip_LRU 包含所有解压页; * Free list 上存放当前空闲...

    InnoDB_Log_Structures

    InnoDB的日志文件结构设计可以分为以下几个部分: - **日志文件概述(LogFile Overview)** InnoDB中的日志文件分为Log File 0和Log File 1,每个文件由日志文件头(LogFileHeader)和多个日志块(Logblocks)组成...

    mysql 8.0 ocp 题库

    在学习和备考MySQL 8.0 OCP的过程中,你需要掌握以下几个关键知识点: 1. **SQL语言**:深入理解SQL语句的编写和执行,包括SELECT查询、JOIN操作、子查询、聚合函数、窗口函数等。同时,了解如何进行数据类型的选择...

    MySQL数据库innodb启动失败无法重启的解决方法

    4. **配置错误**:MySQL配置文件(my.cnf)中的设置错误,如缓冲池大小超过可用内存,或者InnoDB相关参数设置不当,都可能导致启动失败。 5. **表空间问题**:如错误日志所示,可能有一个名为`test_user/user_...

    mysql详细参数

    本文将重点关注与操作系统配置相关的几个核心参数: - **innodb_buffer_pool_size**:设置InnoDB缓冲池的大小。这是InnoDB最重要的参数之一,合理的设置可以显著提升性能。 - **innodb_log_file_size**:设置InnoDB...

    MYSQL数据库技术分享.ppt

    MYSQL参数可以分成几大块:Client端参数、Server端参数和备份参数。在MYSQL数据库中,常用的参数包括innodb_buffer_pool_size、innodb_additional_mem_pool_size、innodb_log_buffer_size、key_buffer_size等。 ...

    MySQL零拷贝技术详解.pdf

    MySQL 提供了几个参数来控制 Page Cache 数据落盘的具体行为,例如 innodb_flush_log_at_trx_commit 参数用于控制基于 Page Cache 的 Redo Log Buffer 的数据落盘机制。 innodb_flush_log_at_trx_commit 参数有三个...

    MySQL_OCP5.7带讲解.pdf

    在mysqldump命令中,有几个关键参数可以用于减少备份时对服务器的影响: - --single-transaction:此参数在备份开始之前会先提交一个BEGIN SQL语句,这可以保证在备份过程中数据的一致性,并且MyISAM表和InnoDB表都...

    centos7下安装mysql.docx

    MySQL 的配置参数可以分为以下几个部分: ### 客户端配置 * port:指定 MySQL 的端口号,默认为 3306。 * socket:指定 MySQL 的套接字文件,位于 /usr/local/mysql/mysql.sock。 ### 服务器配置 * innodb_...

Global site tag (gtag.js) - Google Analytics