返回顶部
首页 > 资讯 > 数据库 >InnoDB有什么用
  • 961
分享到

InnoDB有什么用

2024-04-02 19:04:59 961人浏览 泡泡鱼
摘要

小编给大家分享一下InnoDB有什么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!InnoDB是一个通用的高性能、高可靠性的存

小编给大家分享一下InnoDB有什么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

InnoDB是一个通用的高性能、高可靠性的存储引擎。从Mysql 5.5开始,是mysql默认的存储引擎

InnoDB表关键特性

1.   DML操作遵循ACID原则,事务通过commit, rollback, and crash-recovery等功能来保护用户数据

2.   支持行级,类似oracle方式一致性读来提高多用户并发和性能

3.   InnoDB表按照主键的顺序组织存放在磁盘上(索引组织表),优化基于主键的查询

4.   支持外键约束

5.   可以与其他存储引擎的表混合使用。如join查询等

6.   当处理大量数据时,innoDB能高效利用CPU

 

InnoDB引擎特点

InnoDB有什么用

a.支持地理空间索引 从Mysql 5.7.5开始

b.Innodb不支持hash索引,但是innodb内部使用hash索引实现自适应哈希功能

c.支持全文索引 从MySQL 5.6.4开始

d.Barracuda文件格式下支持压缩表

e、f、g.在server层实现 数据加密、主从复制、备份和point-in-time恢复

InnoDB在内存中使用buffer pool来缓存数据和索引。

默认,innodb_file_per_table是开启的,每个表和与其相关的索引存储在单独的一个文件中;

当innodb_file_per_table关闭时,所有innodb表和索引都存储在单个系统表空间(可能包含几个文件或者分区)。

从MySQL 5.7.6开始,innodb表可以存储在普通表空间,多个表共享一个表空间存储数据

Innodb表可以处理大量数据,即使在文件大小限制为2GB的OS下

 

Innodb作为默认存储引擎

MySQL 5.7 innodb是默认的存储引擎。Innodb在mysql中是事务安全的存储引擎,通过commit, rollback, and crash-recovery功能来保护用户数据。Innodb 行级锁(没有锁升级的问题),并且类似oracle的一致性读来提高多用户并发性。Innodb表是索引组织表,以主键的顺序来组织存放数据从而减少io。支持外键约束。

 

Innodb表的好处

1.       Crash recovery

2.       Buffer pool缓冲访问的数据和索引,热点数据直接在内存中处理,此缓存使用于多种类型的信息,从而加速了处理。

3.       外键约束

4.       如果磁盘或者内存中的数据损坏了,在使用它之前可以使用checksum机制来修复数据

5.       索引组织表的特性,通过主键where ,order by,group by和join查询是快速的

6.       Change buffering特性,自动优化DML操作。Innodb表不仅允许并行的读写,它还缓存修改的数据来减少IO

7.       自适应哈希

8.       压缩表和与其关联的索引

9.       在线删除和创建索引

10.   可以快速的Truncate一个file_per_table,并且释放的空间,操作系统可重用。而不是file_per_table关闭状态下,是存放在系统表空间,释放的空间,仅仅innodb可以重用

11.   对于BLOB和long text的存储效率更高,在动态行模式下

12.   可以通过INFORMATION_SCHEMA监控内部工作

13.    可以通过Performance 下面的表来查看性能相关信息

 

Innodb表最佳实践

一些使用innodb表的建议:

1.       为每张表定义一个主键:使用最常查询的列(或多列),若没有明显的主键,使用一个自增长的值作为主键

2.       关闭autocommit:对性能的上限最大每秒提交上百次(由存储设备的IO性能限制)

3.       使用START TRANSACTION 和COMMIT来控制事务提交的粒度

4.       不要使用LOCK TABLES语句,innodb在不牺牲可靠性和高性能的同时能处理多个会话对同一个表的读和写。为了得到一些行独占访问,可以使用SELECT ... FOR UPDATE来锁定期望的行

5.       开启innodb_file_per_table选项将各个表的数据和索引存放在单独的文件中,而不是放在一个巨大的system表空间。并且便于一些功能的使用,如:表压缩、快速truncate等。

innodb_file_per_table 从MySQL 5.6.6开始默认是开启的

6.       评估你的数据和访问模式是否适用于innodb表压缩特性(在create table语句指定(ROW_FORMAT=COMPRESSED)),表压缩可以提高IO性能

7.       运行时指定--sql_mode=NO_ENGINE_SUBSTITUTION选项来防止需要的存储引擎被禁用或未编译,自动替换存储引擎

关闭InnoDB引擎

Oracle推荐innoDB为首选,从MySQL 5.5开始,其为默认存储引擎。

从MySQL 5.7.5开始,--skip-innodb (--innodb=OFF, --disable-innodb)选项被弃用,如果使用此选项,将会得到一个警告。在未来的MySQL版本中此选项将被删除。

而在5.7.5之前,如果你不想使用innodb表,则通过如下步骤来关闭:

1.       启动的时候指定--innodb=OFF 或者--skip-innodb来关闭innodb引擎

2.       因为innodb是默认引擎,所以要想关闭其,必须使用--default-storage-engine 和--default-tmp-storage-engine来设置默认的其他引擎来为永久和临时表引擎

3.       为了防止当查询innodb相关information_schema表时数据库crash,需要禁用其相关表。在my.cnf位置文件中[mysqld]部分指定如下内容:

loose-innodb-trx=0
loose-innodb-locks=0
loose-innodb-lock-waits=0
loose-innodb-cmp=0
loose-innodb-cmp-per-index=0
loose-innodb-cmp-per-index-reset=0
loose-innodb-cmp-reset=0
loose-innodb-cmpmem=0
loose-innodb-cmpmem-reset=0
loose-innodb-buffer-page=0
loose-innodb-buffer-page-lru=0
loose-innodb-buffer-pool-stats=0
loose-innodb-metrics=0
loose-innodb-ft-default-stopWord=0
loose-innodb-ft-inserted=0
loose-innodb-ft-deleted=0
loose-innodb-ft-being-deleted=0
loose-innodb-ft-config=0
loose-innodb-ft-index-cache=0
loose-innodb-ft-index-table=0
loose-innodb-sys-tables=0
loose-innodb-sys-tablestats=0
loose-innodb-sys-indexes=0
loose-innodb-sys-columns=0
loose-innodb-sys-fields=0
loose-innodb-sys-foreign=0
loose-innodb-sys-foreign-cols=0

以上是“InnoDB有什么用”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网数据库频道!

您可能感兴趣的文档:

--结束END--

本文标题: InnoDB有什么用

本文链接: https://lsjlt.com/news/63380.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • InnoDB有什么用
    小编给大家分享一下InnoDB有什么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!InnoDB是一个通用的高性能、高可靠性的存...
    99+
    2024-04-02
  • InnoDB与MyISAM有什么区别
    MySQL 中 InnoDB 和 MyISAM 区别1、事务和外键InnoDB具有事务,支持4个事务隔离级别,回滚,崩溃修复能力和多版本并发的事务安全,包括ACID。如果应用中需要执行大量的INSERT或U...
    99+
    2024-04-02
  • InnoDB和MyISAM有什么区别
    这篇文章主要讲解了“InnoDB和MyISAM有什么区别”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“InnoDB和MyISAM有什么区别”吧! Inno...
    99+
    2024-04-02
  • InnoDB和MyISAM有什么差异
    这篇文章主要讲解了“InnoDB和MyISAM有什么差异”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“InnoDB和MyISAM有什么差异”吧! ...
    99+
    2024-04-02
  • mysql中innoDB锁有什么主要作用
    下文给大家带来有关mysql中innoDB锁有什么主要作用内容,相信大家一定看过类似的文章。我们给大家带来的有何不同呢?一起来看看正文部分吧,相信看完mysql中innoDB锁有什么主要作用你一定会有所收获...
    99+
    2024-04-02
  • mysql中innodb和myisam有什么区别
    这期内容当中小编将会给大家带来有关mysql中innodb和myisam有什么区别,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。区别:1、MyISAM不支持事务,而Inn...
    99+
    2024-04-02
  • mysql中的innodb是什么
    mysql中的innodb是什么?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。innodb简介InnoDB,是MySQL的数据库引擎之一,...
    99+
    2024-04-02
  • Innodb undo结构是什么
    本篇内容介绍了“Innodb undo结构是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、大体结构...
    99+
    2024-04-02
  • Innodb锁定读是什么
    这篇文章主要介绍“Innodb锁定读是什么”,在日常操作中,相信很多人在Innodb锁定读是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Innodb锁定读是什么”的疑惑...
    99+
    2024-04-02
  • mysql innodb指的是什么
    这篇文章主要讲解了“mysql innodb指的是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mysql innodb指的是什么”吧! ...
    99+
    2023-05-25
    mysql innodb
  • InnoDB的Checkpoint技术是什么
    InnoDB的Checkpoint技术是什么?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!一句话概括,Checkpoint...
    99+
    2024-04-02
  • InnoDB全文索引是什么
    这篇文章主要介绍“InnoDB全文索引是什么”,在日常操作中,相信很多人在InnoDB全文索引是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”InnoDB全文索引是什么”...
    99+
    2024-04-02
  • 什么是InnoDB存储引擎
    这篇文章主要介绍“什么是InnoDB存储引擎”,在日常操作中,相信很多人在什么是InnoDB存储引擎问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”什么是InnoDB存储引擎”...
    99+
    2024-04-02
  • InnoDB底层原理是什么
    这篇文章主要为大家展示了“InnoDB底层原理是什么”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“InnoDB底层原理是什么”这篇文章吧。InnoDB,是MySQL的数据库引擎之一,现为MySQ...
    99+
    2023-06-27
  • innodb缓存命中率使用发是什么
    这篇文章主要介绍“innodb缓存命中率使用发是什么”,在日常操作中,相信很多人在innodb缓存命中率使用发是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”innodb...
    99+
    2024-04-02
  • mysql中innodb怎么用
    这篇文章主要介绍mysql中innodb怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!下面我们就来看看innodb的用法及形式。1.InnoDB主要特点(1)可以通过自动增长列,方法是auto_incremen...
    99+
    2023-06-14
  • InnoDB的主要特点是什么
    InnoDB的主要特点是什么?针对这个问题,今天小编总结了这篇文章,希望能帮助更多想解决这个问题的朋友找到更加简单易行的办法。自从 MySQL 5.1 之后,默认的存储引擎变成了 InnoDB 存储引擎,相...
    99+
    2024-04-02
  • InnoDB行存储格式是什么
    这篇文章主要讲解了“InnoDB行存储格式是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“InnoDB行存储格式是什么”吧! ...
    99+
    2024-04-02
  • InnoDB和MyISAM的区别是什么
    InnoDB和MyISAM的区别是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。InnoDB和MyISAM是许多人在使用MySQL时最常用...
    99+
    2024-04-02
  • mysql innodb double write概念是什么
    小编给大家分享一下mysql innodb double write概念是什么,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!double write原理图如下:通过引入doublewrit...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作