14.5.4 InnoDB File-Per-Table Tablespaces 每个表一个文件
14.5.4 InnoDB File-Per-Table Tablespaces 每个表一个文件 从历史上看, 所有的InnoDB 表和索引是存储在system 表空间, 这个整体的方法是针对机器专注于数据库处理,精心策划的数据增长, 任何磁盘存储分配给MySQL 不会用于其他目的。 InnoDB的 file-per-table 表空间功能提供一个更加灵活的选择, 每个InnoDB 表和它的索引是是单独存储.ibd数据文件。 每个.ibd 数据文件代表一个单独的表空间,这个功能是有innodb_file_per_table 配置选项控制, 在MySQL 5.6.6和更高版本默认启用的。 File-Per-Table 表空间的优势: 1. 你可以回收磁盘空间当runcate或者drop 一个存储在file-per-table tablepace的表。 Truncating or dropping 存储在共享系统表空间的表内部的创建空闲空间 在system tablespace data files (ibdata files) ,空闲的空间只能用于新的InnoDB 数据 同样, 一个表复制ALTER TABLE 操作食欲一个共享的表空间可以增加属于表空间的总量。 这样的操作可能需要更多额外的空间作为数据在表加上索引。 额外的空间用于table-copying ALTER TABLE 选项不会释放回操作系统 2. TRUNCATE TABLE 选项是更快的 当运行在存储在file-per-table tablepaces的表 3.你可以存储特定的包在单独的存储设备,对于I/O优化,空间管理, 或者备份目的。在以前的版本中,你需要移动整个数据库目录到其他设备,然后创建符号连接 在MySQL 数据目录, 在MySQL 5.6.6和更高的版本,你可以指定每个表的位置使用语句 CREATE TABLE ... DATA DIRECTORY = absolute_path_to_directory, 你可以运行OPTIMIZE TABLE来压缩或者重新创建一个 file-per-table tablespace. 当你运行一个 OPTIMIZE TABLE,InnoDB 创建一个新的临时名称的.ibd文件, 只使用需要的空间来存储实际的数据。 InnoDB 删除老的.ibd文件用新的替换它。如果前面的.ibd 文件增长显著但是实际的数据 只占用了一部分空间,运行 OPTIMIZE TABLE 可以回收未使用的空间。 4.你可以移动单独的InnoDB 表相比整个数据库 5.你可以复制单个InnoDB表从一个MySQL 实例到 6. 在file-per-table tablespaces 创建的表使用Barracuda 文件格式。 Barracuda file format 启用功能比如也说和动态行格式。 在 system tablespace 创建的表不能使用那些功能。 李亚那些功能对于一个存在的表,启用innodb_file_per_table设置 运行 ALTER TABLE t ENGINE=INNODB 来替换表 你可以启用更有效率的存储引擎对于BLOB或者TEXT 列使用动态行格式 File-per-table tablespaces 可以提高成功恢复的机会和节省时间当一个腐败发生, 当一个server 不能被重启,或者当备份和binary logs 不可用 你可以备份或者恢复单个表使用MySQL 企业备份产品, 而无需中断其他InnoDB表的使用。 这是有益的 如果你有些表需要较少的备份或者不同的备份计划 File-per-table tablespaces 是方便的对于每个表的状态当复制或者备份表的时候 你可以监控表大小在文件系统层面,不需要访问MySQL 常见的linux 文件系统不允许并发写一个单独的文件当innodb_flush_method 是设置为 O_DIRECT. 因此,有可能的性能改善当使用file-per-table tablespace。 system 表空间存储数据目录和undo logs, 有64TB限制。 通过比较,每个 file-per-table tablespace 有一个64TB 大小限制, 潜在的缺点 对于File-Per-Table 表空间。 1. file-per-table tablespaces, 每个表可能有没有使用的空间, 只能被相同表的记录使用。 这样会浪费空间如果没有妥善管理。 2.fsync 选项必须运行在每个打开的表相比在一个单独的文件, 因此有单独的fsync操作在每个文件,写操作在多个表不能被合并成一个单独的I/O操作。 这个需要InnoDB 执行一个高数量的fsync操作 3.mysqld 必须保持 一个打开的文件句柄对于每个表, 这可能会有性能问题 如果你有多个file-per-table tablespaces 表 4.更多的文件句柄被使用 5. innodb_file_per_table 在MySQL 5.6.6和更高版本默认启用, 你可以考虑关闭如果向后兼容性在MySQL 5.5 or 5.1 关闭innodb_file_per_table防止ALTER TABLE 移动一个InnoDB 表从系统表空间到一个单独的.ibd文件 6.例如,当重新构建InnoDB的 clustered index, 表是被重建使用当前设置的 innodb_file_per_table. 这个行为不应用当增加或者删除InnoDB secondary indexes. 7.如果很多表在增长,会有更多的碎片 会阻碍 DROP TABLE 和表扫描性能。 然而, 当碎片化被管理, 它们自己的表空间的文件可以改善性能
14.5.4 InnoDB File-Per-Table Tablespaces 每个表一个文件的更多相关文章
- 14.7.4 InnoDB File-Per-Table Tablespaces
14.7.4 InnoDB File-Per-Table Tablespaces 从历史上看,所有的InnoDB 表和indexes 是存储在system 表空间. 这个整体的方法是针对机器是整个用于 ...
- 14.5.7 Storing InnoDB Undo Logs in Separate Tablespaces 存储InnoDB Undo logs 到单独的表空间
14.5.7 Storing InnoDB Undo Logs in Separate Tablespaces 存储InnoDB Undo logs 到单独的表空间 在MySQL 5.6.3,你可以存 ...
- 14.8.2 Verifying File Format Compatibility 校验文件格式兼容性:
14.8.2 Verifying File Format Compatibility 校验文件格式兼容性: 14.8.2.1 Compatibility Check When InnoDB Is St ...
- 14.6.1 InnoDB Startup Configuration 启动配置
14.6.1 InnoDB Startup Configuration 启动配置 首先描述关于InnoDB 配置设计数据库文件,日志文件,page size 和内存buffer 的配置. 推荐你定义数 ...
- 14.10.1 InnoDB Disk I/O
14.10 InnoDB Disk IO and File Space Management InnoDB 磁盘IO和文件空间管理: 14.10.1 InnoDB Disk I/O 14.10.2 F ...
- 14.8.1 Enabling File Formats
14.8 InnoDB File-Format Management 14.8.1 Enabling File Formats 14.8.2 Verifying File Format Compati ...
- mysql 异常宕机 ..InnoDB: Database page corruption on disk or a failed,,InnoDB: file read of page 8.
mysql 测试环境异常宕机 系统:\nKylin 3.3 mysql版本:5.6.15--yum安装,麒麟提供的yum源数据库版本 error日志 181218 09:38:52 mysqld_sa ...
- 14.3.5.1 Interaction of Table Locking and Transactions 表锁和事务的相互作用
14.3.5.1 Interaction of Table Locking and Transactions 表锁和事务的相互作用 LOCK TABLES 和UNLOCK TABLES 交互实用事务如 ...
- 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 恢复正 ...
随机推荐
- WCF技术剖析之二十四: ServiceDebugBehavior服务行为是如何实现异常的传播的?
原文:WCF技术剖析之二十四: ServiceDebugBehavior服务行为是如何实现异常的传播的? 服务端只有抛出FaultException异常才能被正常地序列化成Fault消息,并实现向客户 ...
- Windows Store Javascript项目使用高德地图、谷歌地图、百度地图API
原文 Windows Store Javascript项目使用高德地图.谷歌地图.百度地图API 在Win8 Store 项目中可以使用的地图主要有微软的Bing Map,目前高德地图sdk也支持Wi ...
- linux网络体系架构
原创kylin_zeng:http://blog.csdn.net/kylin_fire_zeng 本文参考国嵌视频教程,再此感谢国嵌教育. 一.协议栈层次对比: 1)网络接口层把数据链路层和物理层 ...
- SSH框架之Hibernate(1)——映射关系
ORM的实现思想就是将关系数据库中表的数据映射成对象.以对象的形式展现,这样开发者就能够把对数据库的操作转化为对这些对象的操作.Hibernate正是实现了这样的思想,达到了方便开发者以面向对象的思想 ...
- Android事件模型之interceptTouchEvnet ,onTouchEvent关系正解
首先,看Android的官方文档正解 onInterceptTouchEvent()与onTouchEvent()的机制: 1. down事件首先会传递到onInterceptTouchEvent() ...
- Android 代码混淆
什么是代码混淆 Java 是一种跨平台的.解释型语言,Java 源代码编译成中间”字节码”存储于 class 文件中.由于跨平台的需要,Java 字节码中包括了很多源代码信息,如变量名.方法名,并且通 ...
- salon_百度百科
salon_百度百科 salon 编辑 是法语Salon一字的译音,中文意即客厅,原指法国上层人物住宅中的豪华会客厅.从十七世纪,巴黎的名人(多半是名媛贵妇)常把客厅变成著名的社交 ...
- windows下安装mysql5.6.13的主从复制
如下操作均在vmware 虚拟机中winows xp 测试成功 中间走了很多弯路,网上的很多资料都是针对5.1以前的版本,在新版中根本无法使用,所以根据自己的实践整理了这篇文章 主服务:192.168 ...
- 透过表象看本质!?之三——Kalman滤波
数据拟合能够估计出数据变化的趋势,另外一个同等重要的应用是如何利用这一趋势,预测下一时刻数据可能的值.通俗点儿说,你观察苍蝇(蚊子,蜜蜂)飞了几秒,你也许会想“它下一个时刻可能在哪儿”,“呈现出什么样 ...
- html网页中 点击按钮页面跳转
在html页面中 实现点击按钮页面跳转.语句如下: <input type="button" value="跳转" onClick="windo ...