InnoDB 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
InnoDB 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
InnoDB 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」 !
InnoDB 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」「最积极运营项目」 !
InnoDB 获得 2020 年度 OSC 中国开源项目评选「最积极运营项目」 !
授权协议 GPLv2
开发语言 C/C++
操作系统 跨平台
软件类型 开源软件
开源组织
地区 不详
投 递 者 不详
适用人群 未知
收录时间 2008-12-18

软件简介

InnoDB 是 MySQL 上第一个提供外键约束的数据存储引擎,除了提供事务处理外,InnoDB 还支持行锁,提供和 Oracle 一样的一致性的不加锁读取,能增加并发读的用户数量并提高性能,不会增加锁的数量。InnoDB 的设计目标是处理大容量数据时最大化性能,它的 CPU 利用率是其他所有基于磁盘的关系数据库引擎中最有效率的。

InnoDB 是一套放在 MySQL 后台的完整数据库系统,InnoDB 有它自己的缓冲池,能缓冲数据和索引,InnoDB 还把数据和索引存放在表空间里面,可能包含好几个文件,这和 MyISAM 表完全不同,在 MyISAM 中,表被存放在单独的文件中,InnoDB 表的大小只受限于操作系统文件的大小,一般为 2GB。

目前 InnoDB 已经被 Oracle 收购 。

展开阅读全文

评论 (0)

加载中
更多评论
发表了资讯
2010/06/17 00:00

越来越多的公司从 MyISAM 移植到 InnoDB

来自国外一个 MySQL 数据库咨询师的博客提到: 越来越多的公司正在实施或者已经在计划从 MyISAM 迁移到 InnoDB,经过他的观察发现: 更多的公司比以往对 InnoDB 更加的熟悉 更多的公司对迁移到 InnoDB 表现出更多的兴趣 更多的公司认为这个移植是很安全的 很多的公司已开始就规划基于 InnoDB 的存储,而非 MyISAM 很高兴会有这样的改变,因为 InnoDB 比 MyISAM 具备更多的优势,更稳健和可管理,可以大大降低 DBA 的工作复杂度。...

7
1
发表了资讯
2010/04/27 00:00

InnoDB Plugin 1.0.7 GA 发布

InnoDB 开发团队发布了 InnoDB 1.0.7 GA 版本,该版本包含在 MySQL 5.1.46 中。这是一个稳定的版本,建议在产品环境中使用。另外由于 InnoDB 以后将直接包含在 MySQL 的发行包中,包括编译版本和源码,因此不再提供独立版本的下载。 你可以进入 MySQL 的下载地址下载包含 InnoDB源码 的 MySQL 。 关于 1.0.7 GA 版本的改进内容请看此处。

0
1
发表了资讯
2010/04/20 00:00

InnoDB 1.1.0 发布 in MySQL 5.5

InnoDB 1.1.x 被包含在 MySQL 5.5 中,而没有单独发布。 与 1.0.6 版本相比较,1.1.0 版本主要改进内容包括: Faster recovery Multiple buffer pool instances Multiple rollback segments Extended change buffering with delete buffering and purge buffering Native Asynchronous IO on Linux Improved purge scheduling Improved log sys mutex Separate flush list mutex More stats in PERFORMANCE_SCHEMA 关于 InnoDB...

0
1
发表了资讯
2009/11/06 00:00

InnoDB 将修正 Table Scan 导致效率低下的问题

在 Mark Callaghan 的 blog 上看到的好消息,新版的 InnoDB 將不會因為 table scan 而導致整個 buffer pool 被清空了:「InnoDB plugin gets better again」。 依照「InnoDB buffer pool can be severely affected by table scans」,增加了 innodb_old_blocks_pct 與 innodb_old_blocks_time,利用一些設定避免 buffer pool 被大量清空。這個方法不是很完美,但應該是堪用的,在 5.1.41 的 InnoDB Plugin 應該就會看到。...

0
0
发表了资讯
2009/04/22 00:00

InnoBase 公司发布嵌入式的 InnoDB 引擎

在 MySQL Conference and Expo 会议中, Innobase公司推出了其最新的产品 —— 嵌入式InnoDB。 该产品主要为应用软件开发商,设备制造商和独立软件开发商所提供,嵌入式InnoDB的提供所有高性能,成熟,可靠的数据管理功能的InnoDB的嵌入应用的目标,以小体积,低开销,没有不必要的功能。 嵌入式InnoDB是根据InnoDB的插件,但使用完全独立从MySQL 。这不是一个插件,也不是一个为MySQL开发存储引擎。其目的是直接联系到的应用程...

0
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
2018/01/28 15:14

innodb_trx, innodb_locks, innodb_lock_waits

如果两个事务出现相互等待,则会导致死锁,MySQL的innodb_lock_wait_timeout参数设置了等待的时间限制,超时则抛异常。 select @@innodb_lock_wait_timeout; set @@innodb_lock_wait_timeout=60; 参数innodb_rollback_on_timeout表示:超时的事务是否进行回滚,默认为off,表示不回滚。该变量在启动后不可修改。 information_schema数据库中有3张临时表描述事务之间的等待关系: innodb_trx 事务 innodb_locks 锁 innodb_lock_...

0
0
发表于数据库专区
2014/08/25 17:42

type=InnoDB ENGINE=InnoDB

在MYSQL5.5及以后版本中type=InnoDB 由ENGINE=InnoDB 代替。 由于5.5默认的存储引擎就是InnoDB,因此去掉这个属性不会有影响。

0
1
发表了博客
2018/01/20 18:55

InnoDB Monitors | SHOW ENGINE INNODB STATUS

参考 《mysql 5.7手册》,15.17章节 InnoDB监视器提供有关InnoDB内部状态的信息。 这些信息对于性能调优非常有用。其实所谓的监视器,就是 show engine innodb status 命令。 InnoDB监视器类型 有两种类型的InnoDB监视器: 1. 标准InnoDB监视器(The standard InnoDB Monitor)显示以下类型的信息: 每个活动事务持有的表和记录锁 事务的锁等待 线程的信号量等待 待处理文件的I/O请求 (Pending file I/O requests) 缓冲池统计...

0
0
发表了博客
2018/12/31 21:47

innodb_file_per_table - 转换为InnoDB

共享InnoDB / var / lib / mysql / ibdata1存储的问题 InnoDB表当前将数据和索引存储到共享表空间(/ var / lib / mysql / ibdata1)。由于共享表空间,一个InnoDB表的数据损坏可能导致MySQL无法在整个计算机上启动。修复InnoDB损坏可能非常难以执行,并且可能导致在修复过程中最初未损坏的表的数据丢失。 由于MySQL 5.5将使用InnoDB作为默认存储引擎,因此考虑继续利用/ var / lib / mysql / ibdata1中的共享表空间的后果非常重...

0
0
发表于数据库专区
2019/12/28 13:42

Innodb Table Compression--Innodb表压缩

14.9.1 InnoDB Table Compression 14.9.1.1 Overview of Table Compression 14.9.1.2 Creating Compressed Tables 14.9.1.3 Tuning Compression for InnoDB Tables 14.9.1.4 Monitoring InnoDB Table Compression at Runtime 14.9.1.5 How Compression Works for InnoDB Tables 14.9.1.6 Compression for OLTP Workloads 14.9.1.7 SQL Compression Syntax Warnings and Errors This section describes InnoDB table compression...

1
0
发表了博客
2013/04/10 17:27

innodb

$server = 'localhost';  $user = 'root';  $pass = 'pass8899';  $dbname = 'TEST';  $conn = mysql_connect($server,$user,$pass);  if(!$conn) die("数据库系统连接失败!");  mysql_select_db($dbname) or die("数据库连接失败!");  $result = mysql_query("SHOW TABLES");  while($row = mysql_fetch_array($result))  {  echo "ALTER TABLE  `".$row[0]."` ENGINE = INNODB;"."<br>"...

0
0
发表于数据库专区
2015/05/29 02:29

InnoDB优化

原文地址 InnoDB主索引是聚簇索引,索引与数据共用表空间,对于InnoDB而言,数据就是索引,索引就是数据。InnoDB缓存机制和MyISAM缓存机 制的最大区别就是在于,InnoDB不仅仅是缓存索引,还会是缓存数据。与MyISAM相比,InnoDB缓存可以占用更多的服务器内存缓存InnoDB 表的相关信息,提升InnoDB性能。 1、InnoDB缓存池 InnoDB缓存池(InnoDB buffer pool)是InnoDB性能提升的核心,它既可以缓存数据还可以缓存索引,甚至其他管理...

0
1
发表了博客
2018/01/04 10:52

InnoDB FULLTEXT

1.概要 InnoDB引擎对FULLTEXT索引的支持是MySQL5.6新引入的特性,之前只有MyISAM引擎支持FULLTEXT索引。对于FULLTEXT索引的内容可以使用MATCH()…AGAINST语法进行查询。 为了在InnoDB驱动的表中使用FULLTEXT索引MySQL5.6引入了一些新的配置选项和INFORMATION_SCHEMA表。比如,为了监视一个FULLTEXT索引中文本处理过程的某一方面可以查询INNODB_FT_CONFIG,INNODB_FT_INDEX_TABLE,INNODB_FT_INDEX_CACHE,INNODB_FT_DEFAULT_STO...

0
0
发表了博客
2020/08/06 07:36

InnoDB概览

  InnoDB 采用了MVCC来支持高并发,并且实现了四个标准的隔离级别。其默认级别是REPEATABLE READ(可重复读) ,并且,通过间隙锁(next-key locking)策略防止幻读的出现。间隙锁使得InnoDB 不仅仅锁定查询涉及的行,还会对索引中的间隙进行锁定,防止幻影行的插入。   InnoDB 是基于聚簇索引建立的。InnoDB的索引结构和mysql的其他存储引擎有很大的不同,聚簇索引对主键查询有很高的性能。不过它的二级索引(second index,...

0
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了问答
2020/04/09 21:47

阿里二面之MVCC能不能解决幻读?

不想看逼逼直接跳到最后,还能请各位大佬赐教,这个问题真的是总所纷纭。 一上来很严肃,看起来心情不是很好,然后问了我第一个问题,mysql如何解决幻读? 我首先说的是间隙锁(应该是next-key),但是这方面的思想我忘了,他就追问我具体如何解决的,解决办法如下:(当时没能答出来) 【锁算法】 record:记录锁,单行记录加锁 gap:间隙锁,锁住一个范围 next-key:等于record+gap两者结合 【场景解释】 背景:表:tab,主键=...

4
1
发表于DevOps专区
2020/02/19 01:55

如果只是用缓存,MySQL的memory存储引擎和redis怎么选?

单纯从缓存角度理解,MySQL的Memory存储引擎和Redis的区别怎么理解呢

12
1
发表于数据库专区
2019/11/26 09:21

这个是什么问题??

1 queries executed, 0 success, 1 errors, 0 warnings 查询:CREATE TABLE `QRTZ_SIMPLE_TRIGGERS` ( `sched_name` varchar(120) COLLATE utf8_unicode_ci NOT NULL, `trigger_name` varchar(200) CO... 错误代码: 1005 Can't create table 'testdatabase .QRTZ_SIMPLE_TRIGGERS' (errno: 150) 执行耗时 : 0 sec 传送时间 : 0 sec 总耗时 : 0.059 sec CREATE TABLE `QRTZ_SIMPLE_TRIGGERS` ( `sched_name` VARCHAR(120) COLL...

1
0
发表于数据库专区
2019/10/17 20:39

win32位Mysql5.5的数据库,一个表有50多个G,在采用条件语句删除180天以前的数据时提示1205错误

一台4核4G的工控机,系统winxp 32位 mysql5.5 innodb引擎,主要用来做PLC数据的采集,目前一个表内有 1500多万条信息,我通过一下sql语句进行清理180天以前的数据: DELETE from his_event_tab where date(MMYYDD) < date_sub(curdate(), INRTERVAL 180 DAY); 运行一会提示1025错误提示:1205 Lock wait timeout exceeded; try restarting transaction 我也上网查询了解决的办法,通过查看锁死的进程id进行删除,我发现我这个没...

25
0
发表了问答
2016/08/15 01:32

既然MySQL中InnoDB使用MVCC,为什么REPEATABLE-READ不能消除幻读?

select时,读取创建版本号<=当前事务版本号,删除版本号为空或>当前事务版本号。也就是说读不到别得提交的事务的Insert的数据,因为事务id比当前事务大,而实际上为什么会有幻读?查了很久,没有看到合适的答案

49
5
发表于数据库专区
2019/04/13 14:35

mysql如何实现两行记录相减

需求是需要统计某只股票的某个时间段的区间涨幅,表结构如下: ``` CREATE TABLE `money` ( `id` int(11) NOT NULL, `code` varchar(10) COLLATE utf8mb4_unicode_ci NOT NULL, `name` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL, `pchange` double NOT NULL, `inflow` double NOT NULL, `amount` bigint(11) NOT NULL, `price` double NOT NULL, `high` double NOT NULL, `low` double NOT NULL, `open` double NOT NUL...

3
1
2018/11/20 15:31

GAP锁为什么要锁住索引间的区间,而不是直接锁住值相等的就行了

如: +-----+--------+---------+ | id | userId | name | +-----+--------+---------+ | 100 | 100010 | ce1 | | 200 | 100020 | 1232131 | | 300 | 100030 | ce3 | | 400 | 100040 | ce4 | +-----+--------+---------+ id是PK, userId是普通非唯一索引 A事务: begin; update user set name ='tt' where userId='100030'; B事务: insert into user (userId,name) values('100021','tttt'); 因GAP锁插入阻塞 问题:为啥mysql...

7
0
发表了问答
2015/11/09 19:50

为何MySQL innodb意向排他锁不是兼容的?

根据MySQL官网上面的说明,IX和IX是相互兼容的,但是为什么我的测试结果却不是这样,求解? 表信息如下: mysql> show create table t_account\G *************************** 1. row *************************** Table: t_account Create Table: CREATE TABLE `t_account` ( `account_id` int(11) NOT NULL AUTO_INCREMENT, `amount` int(11) DEFAULT NULL, PRIMARY KEY (`account_id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEF...

8
0
发表了问答
2012/03/12 15:06

Mysql没有InnoDB 引擎,请问如何添加进来

我现在使用别人的一健安装,装的mysql, phpmyadmin等, 但进入phpmyadmin点引擎发现Mysql没有InnoDB 引擎,请问如何添加进来? 谢谢了

5
0
发表了问答
2016/01/29 10:56

mysql服务器磁盘空间耗尽处理方法

mysql服务器磁盘空间耗尽有什么方法处理? Mysql存储是采用Innodb共享表空间,服务器磁盘已满,drop之前的表物理内存也未释放; 只要能够将drop表的内存释放 磁盘空间就足够了,请问各位是否有合适方法释放物理内存?(备份删除重启导入好像太耗时间不切实际,数据库内存超几T了)

4
0
发表了问答
2011/12/30 08:04

超越 MySQL

尽管 MySQL 是最受欢迎的程序之一,但是许多开发人员认为有必要将其拆分成其他项目,并且每个分支项目都有自己的专长。该需求,以及 Oracle 对核心产品增长缓慢的担忧,导致出现了许多开发人员感兴趣的子项目和分支。 简介 MySQL 是历史上最受欢迎的免费开源程序之一。它是成千上万个网站的数据库骨干,并且可以将它(和 Linux®)作为过去 10 年里 Internet 呈指数级增长的一个有力证明。 那么,如果 MySQL 真的这么重要,为什...

28
74
发表了问答
2011/03/12 12:54

MySQL 5.5 的 InnoDB 到底有何问题?

oschina 在春节期间升级了 MySQL 到 5.5.8 GA 版本,并将表引擎从 MyISAM 改为 InnoDB 后出现了严重的问题,详情请看:http://www.oschina.net/bbs/thread/15798 。 但后来我在本地测试的结果是,单用户访问并不会出现问题,用的是 Percona Server 5.5 。 于是内部商量,此次升级顺便把数据库换成 Percona Server 5.5,但是昨晚升级后刚跑起来就报了一大堆异常,跟春节期间的异常一模一样。 升级过程必须在短时间内结束,因此不...

18
14
发表了问答
2015/04/01 09:20

请问oschina用的数据库是mysql isam吗

我发现typecho emlog用的都是mysql isam , 然后wordpress 4.1用的是mysql innodb. 我也实际测试了下,在单表两千万条记录情况下,mysql isam的插入,查询速度要高于postgrelsql, 再高于 mysql innodb . isam > postgrelsql > inno db. mysql isam的缺点是不支持事务对吗,然后数据容易丢失,不适合商业交易系统对吗。那么用在论坛上,不重要的数据,允许丢失也汉关系的网站,用mysql isam最好对不对。以后想把这个表myisam转换为...

3
0
发表了问答
2015/01/22 15:38

现在建议用MyISAM还是InnoDB???

目前网上搜索到的都是比较老的文字介绍。

18
2
发表了问答
2013/08/14 21:35

关于mysql表空间结构 ——innodb一次可以申请多少个区?

刚刚看《Mysql技术内幕:innodb存储引擎》中说innodb存储引擎每次最多可以申请4个区,那也就是4MB但是在实验的时候发现当增大到512——560kb之后,ibd文件一下就增大到了9M多,那是不是innodb申请了两次还是可以一次申请超过四个区。

1
0
发表了问答
2014/07/19 02:39

数据库批量更新事务速度奇慢为啥

$this->db->trans_start(); foreach($batches as $batch)//$batches数组有10000多条记录 { $this->db->where('id'=>$batch->id)->from('table'); $count = $this->db->count_all_results(); if($count > 0) { $this->db->update($batch)->where('id'=>$...

7
0
发表了问答
2014/07/18 20:26

为何innodb事务执行速度极慢?

Set AutoCommit = 0; Start Transaction; Update table1 set field1='val1', field2='val2', field3='val3' .... where prim_field= 'id'; ..... .... ... Commit;   Set AutoCommit = 1; 大概1万条Update语句 执行时间竟然有200-250秒之久! 原来是两个字段的联合主键 删掉一个主键字段之后问题依旧 为什么会这样?...

5
1
发表了问答
2013/08/05 15:19

mysql 数据导入及格式的问题?

今天学习MySQL的时候下载了一个employees_db-full-1.0.6.tar.bz2这个示例数据库,我的系统是Linux,MySQL版本是5.1.69,所以数据库默认存储引擎是MyIsam,但是导入数据库后在数据目录下只有.frm文件,没有.MYD和.MYI文件,我查看了一下表的定义,发现其存储引擎是Innodb,更改存储引擎为Myisam后就出现了MYI和MYD文件。问题是:为什么存储引擎定义为innodb却存储为.frm,它的数据存哪去了?...

9
0
发表了问答
2010/12/22 16:07

一个库既有innodb,也有myisame,如下方案热备份行不?

因为我一个库中既有innodb表,也有myisam表,现在要做每天全备份。现在机器结构是一主一从,我在从库做全备份。 考虑到库中既有innodb表,也有myisam表,我的方案是先停掉从库SQL_THREAD线程,然后再全备份,备份完后再再开启 SQL_THREAD线程。请问这个方案可行性高不?还有其他的方案吗?如果以后要实现多主一从,那全备份策略该是怎么样的呢? 请大家提些建议。 脚本部分代码如下: stop_sqlthread="stop slave SQL_THREAD;" ...

2
1
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
0 评论
38 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部