加入收藏 | 设为首页 | 会员中心 | 我要投稿 济南站长网 (https://www.0531zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

mysql dba体系进修(21)mysql存储引擎InnoDB

发布时间:2016-10-31 00:24:53 所属栏目:MySql教程 来源:站长网
导读:副标题#e# mysql 存储 引擎 InnoDB 1,主体系结构: 默认7个后台线程,4个io thread(insert buffer、log、read、write),1个master thread(优先级最高),1个锁(lock)监控线程,1个错误监控线程。可以通过show engine innodb status来查看。新版本已对默认的re

3,自适应哈希索引

InnoDB存储引擎提出一种自适应哈希索引,存储引擎会监控对表上索引的查找,如果观察到建立建立哈希索引会带来速度的提升,则建立哈希索引,所以称之为自适应的。自适应哈希索引只能用来搜索等值的查询,如select * from table where index_col='***', 此外自适应哈希是由InnoDB存储引擎控制的,我们只能通过innodb_adaptive_hash_index来禁用或启用,默认开启。

4,重做日志文件

 实例和介质失败,重做日志文件就能派上用场,如数据库掉电,InnoDB存储引擎会使用重做日志恢复到掉电前的时刻,以此来保证数据的完整性。参数innodb_log_file_size指定了重做日志文件的大小;innodb_log_file_in_group指定了日志文件组中重做日志文件的数量,默认为2,innodb_mirrored_log_groups指定了日志镜像文件组的数量,默认为1,代表只有一个日志文件组,没有镜像;innodb_log_group_home_dir指定了日志文件组所在路径,默认在数据库路径下。

二进制日志和重做日志的区别:首先,二进制日志会记录所有与Mysql有关的日志记录,包括InnoDB、MyISAM、Heap等其他存储引擎的日志。而InnoDB存储引擎重做日志只存储有关其本身的事务日志;其次内容不同,不管将二进制日志文件记录的格式设为STATEMENT还是ROW,又或者是MIXED,其记录的都是关于一个事务的具体操作内容。而InnoDB存储引擎的重做日志文件记录的关于每个页的更改的物理情况 。此外,写入时间不同,二进制日志文件是在事务提交前进行记录的,而在事务进行的过程中,不断有重做日志条目被 写入重做日志文件中。

5,,表空间文件

InnoDB默认的表空间文件为ibdata1,可通过show variables like 'innodb_file_per_table'查看每个表是否产生单独的.idb表空间文件。但是,单独的表空间文件仅存储该表的数据、索引和插入缓冲等信息,其余信息还是存放在默认的表空间中。每个文件都可以自动增长

mysql> show variables like "%file_path%";

+-----------------------+------------------------+

| Variable_name  | Value   |

+-----------------------+------------------------+

| innodb_data_file_path | ibdata1:10M:autoextend |

+-----------------------+------------------------+

1 row in set (0.00 sec)

innodb老提示我060809 16:49:11 [ERROR] InnoDB: syntax error in innodb_data_file_path

innodb_data_file_path=ibdata1:50M;ibdata2:50M:autoextend

一个指定数据文件的完全后缀包括文件名,它的尺寸和数个可选属性:

file_name:file_size[:autoextend[:max:max_file_size]]

autoextend属性和后面跟着的属性只可被用来对innodb_data_file_path行里最后一个数据文件。

如果你对最后的数据文件指定autoextend选项。如果数据文件耗尽了表空间中的自由空间,InnoDB就扩展数据文件。扩展的幅度是每次8MB。

mysql dba体系进修(21)mysql存储引擎InnoDB

查看本栏目更多精彩内容:http://www.bianceng.cn/database/MySQL/

6,mysql innodb中的锁

InnoDB存储引擎锁的实现和Oracle非常类似,提供一致性的非锁定读、行级锁支持、行级锁没有相关的开销,可以同时得到并发性和一致性。

InnoDB存储引擎实现了如下两种标准的行级锁:

共享锁(S Lock):允许事务读一行数据;

排他锁(X Lock):允许事务删除或者更新一行数据。

(编辑:济南站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读