首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    The basics of InnoDB space file layout(3.InnoDB空间文件布局基础知识)

    在前面《学习InnoDB核心之旅》中,我介绍了innodb_diagrams项目来记录InnoDB的内部。它提供了这篇文章中用到的所有图表。 InnoDB的数据存储模型使用空间“Space”,在Mysql中通常被称为表空间,在InnoDB中有时也被称为文件空间。一个空间能够由操作系统级别的多个实际文件如ibData1、ibdata2组成。但是它只是一个逻辑文件。由多个物理文件被当作物理连接在一起的一个逻辑文件处理。 InnoDB的每个空间都分配一个32位的整数空间ID,它在许多不同的地方被用来引用这个空间。InnoDB总是有一个系统空间。它总是被分配空间ID为0.系统空间用于InnoDB需要的各种特殊日志记录。通过Mysql,InnoDB目前支持每个表文件空间的形式的额外空间。这将为每个Mysql表创建一个.ibd文件。在内部,这个.ibd文件实际上是一个功能完整的空间。它可以包含多个表,但是在Mysql的实现中,它门只包含一个表。也就是说通常是一张表至少有一个独立的ibd文件。

    02

    MySQL系统变量优化详述

    1、全局内存缓冲区 1)key_buffer_size     该变量是只存储MyISAM索引信息的全局内存缓冲区。在对应的.MYI文件中的索引数据从磁盘上被读取出来然后存入这个缓冲区。想要调整key_buffer_size的大小,只需要简单统计所有MyISAM表中总索引的大小,然后随着数据随时间增长而调整。  当这个索引码缓冲区中没有足够的空间来存储新的索引数据时,将会用最近最少使用的的方法覆盖掉旧的页面。 2)innodb_buffer_pool_size     innodb_buffer_pool_size是用来存储所有InnoDB数据和索引的全局内存缓冲区。对完全使用InnoDB的数据库来说,这是个很重要的缓冲区,一定要正确分配,不正确的分配这个缓冲区可能导致额外的磁盘IO开销并降低查询性能。     常见的方法是把innodb_buffer_pool_size设定为RAM的80%,但是很多情况下这样设定不合理,如RAM大小50G,而数据库总量只有2G。     可以使用SHOW GLOBAL STATUS或者SHOW ENGINE INNODB STATUS命令来监控InnoDB缓冲池的使用情况。 MySQL> SHOW GLOBAL STATUS LIKE 'innodb_buffer%'; +---------------------------------------+--------------------------------------------------+ | Variable_name                        | Value                                            | +---------------------------------------+--------------------------------------------------+ | Innodb_buffer_pool_dump_status        | Dumping of buffer pool not started              | | Innodb_buffer_pool_load_status        | Buffer pool(s) load completed at 180330 16:27:30 | | Innodb_buffer_pool_resize_status      |                                                  | | Innodb_buffer_pool_pages_data        | 51679                                            | | Innodb_buffer_pool_bytes_data        | 846708736                                        | | Innodb_buffer_pool_pages_dirty        | 0                                                | | Innodb_buffer_pool_bytes_dirty        | 0                                                | | Innodb_buffer_pool_pages_flushed      | 116888                                          | | Innodb_buffer_pool_pages_free        | 1024                                            | | Innodb_buffer_pool_pages_misc        | 4641                                            | | Innodb_buffer_pool_pages_total        | 57344                                            | | Innodb_buffer_pool_read_ahead_rnd    | 0                                                | | Innodb_buffer_pool_read_ahead        | 0                                                | | Innodb_

    01
    领券