"Mysql进程结构与控制磁盘IO的参数及内存数据结构总览"

需积分: 10 222 下载量 165 浏览量 更新于2024-01-13 收藏 668KB PPT 举报
MySQL进程结构主要由控制磁盘IO的参数、MySQL内存原理与数据结构组成。其中,控制磁盘IO的参数包括innodb_io_capacity、innodb_max_dirty_pages_pct和innodb_adaptive_flushing。 innodb_io_capacity参数用来表示磁盘IO的吞吐量,默认值为200。该参数影响刷新到磁盘的数量(脏缓冲),根据innodb_io_capacity的百分比来刷新相对数量的页。在合并插入缓冲时,合并插入缓冲的数量为innodb_io_capacity数值的5%。在从缓冲区刷新脏页时,刷新脏页的数量为innodb_io_capacity。 另一个控制磁盘IO的参数是innodb_max_dirty_pages_pct,默认值为75%。这个参数会加快脏页刷新频率,减少恢复时间,同时也能保证磁盘IO负载的平衡。 innodb_adaptive_flushing是在InnoDB插件中引入的参数。它影响每1秒刷新脏页的数量。在原来的刷新规则中,当脏页在缓冲池所占的比例小于innodb_max_dirty_pages_pct时,不会刷新脏页;而当比例大于innodb_max_dirty_pages_pct时,会刷新100个脏页。但是,innodb_adaptive_flushing参数的引入使得InnoDB存储引擎能够根据重新生成重做日志的速度来判断最合适的刷新脏页的数量。因此,即使脏页的比例小于innodb_max_dirty_pages_pct时,也会刷新一定量的脏页。 MySQL内存与数据结构的部分讨论了MySQL如何完成一个session以及相关的内存结构和数据结构。MySQL完成一个session主要是通过以下步骤实现的:MySQL服务器监听3306端口、验证用户、创建线程、解析SQL查询、优化查询、打开表、检查缓冲区是否有对应的缓存记录、到磁盘寻找数据、将数据写入缓存、将数据返回给客户端、关闭表、关闭线程、关闭连接。 MySQL的内存结构包括了各种缓存区和内存池,如查询缓存、表缓存、缓冲池等。这些缓存区和内存池用来提高查询和数据访问的性能。 MySQL的数据结构包括了各种数据类型、数据存储方式、索引结构等。MySQL支持各种常见的数据类型,如整数、浮点数、字符串等,同时还支持更复杂的数据类型,如日期时间、二进制数据等。MySQL的数据存储方式使用了多种技术,如B树索引、哈希索引等。这些数据结构和存储方式能够有效地组织和管理数据,提高数据查询和访问的效率。 总结起来,MySQL的进程结构涵盖了控制磁盘IO的参数和MySQL内存原理与数据结构。控制磁盘IO的参数包括innodb_io_capacity、innodb_max_dirty_pages_pct和innodb_adaptive_flushing,用于调整磁盘IO的吞吐量和脏页刷新频率。MySQL的内存原理与数据结构包括了各种缓存区、内存池和数据结构,用于提高查询和数据访问的性能。通过深入了解MySQL进程结构,可以更好地理解和优化MySQL的性能。