14.10 InnoDB Disk IO and File Space Management  InnoDB 磁盘IO和文件空间管理:

14.10.1 InnoDB Disk I/O
14.10.2 File Space Management
14.10.3 InnoDB Checkpoints
14.10.4 Defragmenting a Table
14.10.5 Reclaiming Disk Space with TRUNCATE TABLE 作为一个DBA,你必须管理disk I/O 来保持 I/O 子系统防止变的饱和, 管理磁盘空间来避免存储满存储设备。 ACID 设计模型需要一定数量的I/O,那个看起来是多余的, 但是有助于确保数据的可靠性。 在这些约束下, InnoDB 尝试优化数据库负载和磁盘文件组织来 最小化磁盘I/O总量。 有时候,I/O 是延迟的直到数据库不是那么繁忙,或者直到everything 需要被带到一致性状态, 比如在一个数据库重启在一个快速关闭。 这个章节描述主要因素对于I/O和磁盘空间 1. 控制 background I/O 的数量用于改善查询性能 2. 启用或者关闭提供额外的持久性 在代价为额外I/O的功能 3.组织表到很多的小表, 更少的大文件, 或者是两者的结合 4.平衡redo log 文件的大小 对I/O活动发生当log files 变满 5.如何重新组织一个表用于优化查询 14.10.1 InnoDB Disk I/O InnoDB 磁盘I/O InnoDB 使用异步 disk I/O 在可能的情况下, 通过创建多个threads 来处理I/O操作, 同时允许其他数据库操作来处理 当I/O是仍旧在进行中。 在Linux和Windows 平台,InnoDB 使用可用的OS和library 函数来执行 异步I/O, 在其他平台,InnoDB 仍旧使用I/O threads,但是the threads 可能实际等待I/O的请求来完成, 这种技术被认为是 模拟异步I/O。 Read-Ahead: 如果InnoDB 可以决定有一个高概率,数据可能马上需要,它执行read-ahead 操作 把数据加载到Buffer pool,这样就可以在内存里可用的。 几个大的大请求对于连续的数据是更加有效的相比做一些小的请求,分散的请求, 这里有两种预读算法在InnoDB: 1. 顺序预读, 如果InnoDB 选项发现访问模式到segment 在tablespace 是顺序的, 它提前post 一个批处理器读数据库页到I/O系统 2. 在一个随机预读,如果InnoDB 注意一些区域在一个tablespace 看起来被全部读入到buffer pool, 它post 剩下的读到I/O系统 Doublewrite Buffer InnoDB 使用一个新的文件刷新技术涉及一个结构称为doublewrite buffer, 默认启用 (innodb_doublewrite=ON).
mysql> show variables like '%innodb_doublewrite%';
+--------------------+-------+
| Variable_name | Value |
+--------------------+-------+
| innodb_doublewrite | ON |
+--------------------+-------+
1 row in set (0.00 sec) 它增加安全的恢复在一个crash或者断电, 通过降低 fsync() operations.来提高性能 在写page 到一个数据文件,InnoDB 首先写他们到一个连续的tablespace area 称为 doublewrite buffer. 只有在write和flush 到 doublewrite buffer 已经完成 InnoDB 写pages到它们的合适的位置在数据文件里 。
如果没有一个操作系统,
存储子系统,或者mysqld 处理一个crash 在page中间

14.10.1 InnoDB Disk I/O的更多相关文章

  1. 14.10.5 Reclaiming Disk Space with TRUNCATE TABLE 回收空间使用TRUNCATE TABLE

    14.10.5 Reclaiming Disk Space with TRUNCATE TABLE 回收空间使用TRUNCATE TABLE 回收操作系统磁盘空间当truncate 一个InnoDB ...

  2. 14.10.3 InnoDB Checkpoints InnoDB 检查点:

    14.10.3 InnoDB Checkpoints InnoDB 检查点: 你的log files 变的很大可能会降低磁盘性能在checkpointing的时候, 它通常设置设置log files总 ...

  3. 14.6.1 InnoDB Startup Configuration 启动配置

    14.6.1 InnoDB Startup Configuration 启动配置 首先描述关于InnoDB 配置设计数据库文件,日志文件,page size 和内存buffer 的配置. 推荐你定义数 ...

  4. 14.1.1 InnoDB as the Default MySQL Storage Engine

    14.1 Introduction to InnoDB 14.1.1 InnoDB as the Default MySQL Storage Engine 14.1.2 Checking InnoDB ...

  5. 14.4.1 InnoDB Startup Configuration

    14.4 InnoDB Configuration :InnoDB 配置: 14.4 InnoDB Configuration 14.4.1 InnoDB Startup Configuration ...

  6. [VirtualBox] Install Ubuntu 14.10 error 5 Input/output error

    After you download the VirtualBox install package and install it (just defualt setting). Then you sh ...

  7. 14.2.3 InnoDB Redo Log

    14.2.3 InnoDB Redo Log 14.2.3.1 Group Commit for Redo Log Flushing redo log 是一个基于磁盘数据结构的用于在crash 恢复正 ...

  8. 14.10.4 Defragmenting a Table 整理表

    14.10.4 Defragmenting a Table 整理表: 随机插入或者删除从一个secondary index 可以导致index变的fragmented Fragmentation意味着 ...

  9. 14.10.2 File Space Management 文件空间管理:

    14.10.2 File Space Management 文件空间管理: 数据文件 你定义在配置文件形成了InnoDB的系统表空间, 文件是逻辑连接形成表空间,没有条带化使用. 你不能定义你的表在表 ...

随机推荐

  1. oracle rowid 详解

    oracle rowid详解 今天是2013-09-15,存储在数据库中的每一行数据都有一个地址,oracle使用rowid数据类型在存储地址.rowid有如下类别: 1)physical rowid ...

  2. 10994 - Simple Addition(规律)

    Problem E Simple Addition Input: Standard Input Output: Standard Output Let’s define a simple recurs ...

  3. Group DataList

    一,效果图. 二,源代码. <!DOCTYPE html><html><head> <meta charset="UTF-8"> & ...

  4. UltraEdit for mac 3.2.0.10免费破解版下载!!

    http://www.mactech.cn/a/108.html UltraEdit for mac 3.2.0.10破解版下载地址 看很多朋友不知道算号器的使用方法,分享如下: 1. 解压Ultra ...

  5. 使用Powershell 脚本发送邮件乱码问题?

    最近在使用Powershell 编码的时候发现一个问题,只要邮件中有中文字符的邮件执行脚本以后,我们发现收到邮件都是乱码,状况如下: 对比下Powershell脚本,我们将邮件的·ENCODING 加 ...

  6. 各国iPhone5系列最新裸机价格

    美国/加拿大/中国香港/中国大陆iPhone5系列最新裸机价格

  7. LVS:DR模式(Direct Routing)部署实验

    本文介绍怎样在kvm的虚拟环境下,部署实验LVS的DR模式.包含网络结构图,怎样配置.以及使用tcpdump分析ip包. 网络结构图                               kvm ...

  8. Linux下安装yum工具

    Linux下安装yum工具 http://blog.csdn.net/caoshichaocaoshichao/article/details/13171919

  9. source insight 中文注释为乱码解决

    1. source insight 中文注释为乱码解决 http://blog.csdn.net/bingfeng1210/article/details/7527059 2. Source Insi ...

  10. arm:启动代码判断是从nand启动还是从norflash启动,拷贝程序到内存的过程

    一.nand启动和nor启动:[1] CPU从0x00000000位置开始运行程序. 1.nand启动: 如果将S3C2440配置成从NANDFLASH启动(将开发板的启动开关拔到nand端,此时OM ...