加入收藏 | 设为首页 | 会员中心 | 我要投稿 应用网_丽江站长网 (http://www.0888zz.com/)- 科技、建站、数据工具、云上网络、机器学习!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

翻译5.7手册InnoDB部分第一篇——InnoDB介绍

发布时间:2022-04-02 11:15:53 所属栏目:MySql教程 来源:互联网
导读:翻译5.7手册InnoDB部分第一篇InnoDB介绍: 1. InnoDB介绍 InnoDB是一个高可靠,高性能的多用途数据库存储引擎。在MySQL5.7中InnoDB是默认使用的存储引擎,当然,你可以配置其它存储引擎,比如没有通过ENGINE设置为InnoDB的建表语句。 InnoDB的关键特性 列
         翻译5.7手册InnoDB部分第一篇——InnoDB介绍:

1. InnoDB介绍
       InnoDB是一个高可靠,高性能的多用途数据库存储引擎。在MySQL5.7中InnoDB是默认使用的存储引擎,当然,你可以配置其它存储引擎,比如没有通过ENGINE设置为InnoDB的建表语句。
 
       InnoDB的关键特性
 
       列举以下重要几点:
 
      DML操作在ACID模式下执行(插入,更新,删除操作,要注意的是查询操作有时候也可能认为是DML操作,如select * from table for update),也就是关于事务的提交,回滚,故障恢复。
      行级锁和类似Oracle的非锁定读以及多用户的支持。
      聚集索引,InnoDB会根据表的主键在数据存储的时候对数据进行排序以减少通过主键查询时的I/O。每一个InnoDB表的主键就是一个聚集索引
      在保证数据完整性方面,InnoDB支持外键,有外键存在时,数据在插入,更新和删除的时候都有外键约束。
InnoDB特性
 
Storage limits
 
存储限制
 
64TB
 
Transactions
 
事务
 
Yes
 
Locking granularity
 
锁粒度
 
Row
 
MVCC
 
多版本并发控制
 
Yes
 
Geospatial data type support
 
地理坐标数据类型支持
 
Yes
 
Geospatial indexing support
 
坐标索引支持
 
Yes[a]
 
B-tree indexes
 
B-tree 索引
 
Yes
 
T-tree indexes
 
T-tree 索引
 
No
 
Hash indexes
 
哈希索引
 
No[b]
 
Full-text search indexes
 
全文索引
 
Yes[c]
 
Clustered indexes
 
聚集索引
 
Yes
 
Data caches
 
缓存
 
Yes
 
Index caches
 
索引缓存
 
Yes
 
Compressed data
 
压缩功能
 
Yes[d]
 
Encrypted data[e]
 
加密功能
 
Yes
 
Cluster database support
 
集群支持
 
No
 
Replication support[f]
 
复制支持
 
Yes
 
Foreign key support
 
外键支持
 
Yes
 
Backup / point-in-time recovery[g]
 
时间点恢复
 
Yes
 
Query cache support
 
查询缓存支持
 
Yes
 
Update statistics for data dictionary
 
更新静态字典数据
 
Yes
 
一些特性说明:
 
[a] 在MySQL5.7.5以及更高的版本中InnoDB 支持地理位置。
 
[b] InnoDB 在自适应哈希索引内部使用哈希索引。
 
[c] 在MySQL 5.6.4 以及更高的版本中InnoDB 支持全文索。
 
[d] 表压缩功能需要Barracuda 的文件格式
 
[e] 通过加密函数实现。
 
[f] 支持,但不是在引擎级别实现。
 
[g] 支持,但不是在引擎级别实现。.
 
各种存储引擎的对比将在后面的章节中详细列出。
 
1.1     为什么要选择InnoDB
选择InnoDB的理由如下:
 
如果你的服务器由于硬件或软件的问题而崩溃,你不用考虑数据库当时发生的事情,也不需要你在数据库重新启动后做任何特殊处理。InnoDB的故障恢复机制会自动帮你完成所有在故障发生前的提交,另外,对没有提交的动作不做任何操作。
InnoDB存储引擎对于访问的数据在内存中持有一个缓存表数据和索引的缓存池,用户的一些查询可以从内存中的缓存池中直接返回数据。这种缓存方式适用于很多提高处理速度的场景。在一台专用的数据库服务器上,InnoDB缓存池的内存占用通常都高于总内存的80%。

(编辑:应用网_丽江站长网)

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

    热点阅读