Questions tagged «innodb»

InnoDB:MySQL的符合ACID的存储引擎

10
从.frm和.ibd文件还原表?
我以前已经保存了/ var / lib / mysql / ddms目录的副本(“ ddms”是架构名称)。现在,我通过运行在新安装的Ubuntu 10.04.3 LTS上安装了新的MySQL apt-get install mysql-server,我相信已经安装了5.1版。在/ var / lib / mysql下复制ddms目录后,它的某些表可以正常工作,这些表具有三个文件的关联集:.frm文件,.MYD文件和.MYI文件。 但是,有两个表具有不同的文件集:.frm文件和.ibd文件。这两个表未显示在phpMyAdmin的表列表中。当我查看错误日志时,它说: [ERROR] Cannot find or open table ddms/dictionary_item from the internal data dictionary of InnoDB though the .frm file for the table exists. Maybe you have deleted and recreated InnoDB data …
36 mysql  innodb 


5
为什么InnoDB 100x上的简单SELECT速度比MyISAM慢?
我有一个很烦人的问题。我想使用INNODB作为我的主要数据库引擎,而放弃MyISAM,因为我需要前者使用galera-cluster来实现冗余。 我将newbb_post表复制(描述如下)到一个名为的新表中,newbb_innopost并将其更改为InnoDB。这些表当前5,390,146每个都有条目。 在新启动的数据库上运行这些选择(因此此时不涉及缓存!),该数据库会产生以下结果(省略完整的输出,请注意,我什至不要求数据库对结果进行排序): 从newbb_post中选择post.postid,post.attach作为post,而post.threadid = 51506; 。 。 | 5401593 | 0 | | 5401634 | 0 | + --------- + -------- + 设置62510行(0.13秒) 从newbb_innopost中选择post.postid,post.attach作为post,而post.threadid = 51506; 。 。 | 5397410 | 0 | | 5397883 | 0 | + --------- + -------- + 设置62510行(1分22.19秒) 0.13秒至86.19秒(!) 我想知道为什么会这样。我确实在这里阅读了有关InnoDB的Stackexchange的一些答案,并且有人建议将innodb_buffer_pool大小增加到已安装RAM的80%。这不会解决问题,对特定ID的初始查询将至少花费50倍以上的时间,并使整个Web服务器停滞不前,从而对数据库进行连接和查询。之后可能会启动缓存/缓冲区,但是此数据库中有超过100.000个线程,因此很有可能缓存将永远无法容纳要服务的所有相关查询。 上面的查询很简单(没有连接),并且使用了所有键: 从newbb_innopost解释选择post.postid,post.attach作为post在哪里post.threadid = …

4
MySQL InnoDB崩溃验尸
MySQL今天早上对我崩溃了。 除了标准的MySQL随附数据库外,我使用的都是InnoDB。 我尝试重新启动MySQL守护程序,但失败两次。 然后,我重新启动了整个服务器,MySQL正确启动,并且自此以来一直运行良好。 初始崩溃的mysqld日志文件包含以下内容: 120927 10:21:05 mysqld_safe Number of processes running now: 0 120927 10:21:06 mysqld_safe mysqld restarted 120927 10:21:12 [Note] Plugin 'FEDERATED' is disabled. 120927 10:21:12 InnoDB: The InnoDB memory heap is disabled 120927 10:21:12 InnoDB: Mutexes and rw_locks use GCC atomic builtins 120927 10:21:12 InnoDB: Compressed tables …


2
错误1114(HY000)表…已满,并且innodb_file_per_table设置为自动扩展
我有一个MySQL数据库,可容纳大量数据(100-200GB-一堆科学测量值)。绝大多数数据存储在一张表中Sample。现在,我正在创建数据库的从属副本,我想innodb_file_per_table在此过程中充分利用的优势。因此,我设置innodb_file_per_table了从属配置,并导入了数据库的转储。令我惊讶的是,它失败了 第5602行的错误1114(HY000):表“样本”已满 该文件Sample.ibd当前约为93GB,分区上有600GB以上的可用空间,因此这不是磁盘可用空间问题。它似乎都没有达到任何类型的文件系统限制(我正在使用ext4)。 如果有任何想法,我将不胜感激,或者可能要调查什么。 更新:我正在使用mysql Ver 14.14 Distrib 5.1.66, for debian-linux-gnu (x86_64)。 SELECT @@datadir; -- returns `/home/var/lib/mysql/` SHOW VARIABLES LIKE '%innodb_data_file_path%'; -- ibdata1:10M:autoextend df -h /home/var/lib/mysql/ 768G 31G 699G 5% /home

5
如何在MySQL中估算/预测表的数据大小和索引大小
我正在研究很多博客和论坛,但找不到任何准确答案,因此我发现估算表大小的最佳方法是什么? 例如,我们有一个带有InnoDB引擎的表City,可以说在未来(未来1年)它将有100万条记录,因此在此期间该表的估计数据大小和索引大小是多少。 mysql> desc City; +-------------+----------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------+----------+------+-----+---------+----------------+ | ID | int(11) | NO | PRI | NULL | auto_increment | | Name | char(35) | NO | | | | | CountryCode | char(3) | NO | …
26 mysql  innodb 

7
为什么要使用innodb_file_per_table?
有许多文章夸大了(当然是恕我直言)对的需要innodb_file_per_table。我知道使用innodb_file_per_table,应该可以更好地控制各个表;例如分别备份每个表。但是,关于获得更好性能的要求令人怀疑。 在我的测试中,在性能没有差异innodb_file_per_table,并ibdata1为60GB的数据库。当然,这是对普通查询的简单测试,现实生活中复杂查询的情况可能有所不同(这就是我问这个问题的原因)。具有64位linux ext4可以有效处理大文件。 使用innodb_file_per_table,需要更多的磁盘I / O操作;这对于复杂的JOINs和FOREIGN KEY约束非常重要。 表空间在单个共享ibdata;单独表的专用表空间如何节省磁盘空间?当然,使用释放每个表的表空间更为容易ALTER,但是这仍然是一个昂贵的过程(使用表锁)。 问题:是否innodb_file_per_table对更好的mysql性能有影响?如果是,为什么?

2
“ ibfk”在MySQL中代表什么?
如果我在phpmyadmin中为表“ photos”创建外键约束,则稍后会看到该约束名为“ photos_ibfk_1”,下一个约束名为“ photos_ibfk_2”,依此类推。由此,我得出[tablename] _ibfk_constraintIndex为MySQL中数据库约束的约定。它是否正确?IBFK代表什么?

1
Mysql Innodb:InnoDB:错误:最后一个检查点的寿命是InnoDB:它超出了日志组的容量
我真的需要一些mysql专业知识。我是mysql的新手,并且在过去1周内看到数据库的服务器崩溃。 我在Ubuntu上使用mysql 5.1.36。这是具有双核和4GB内存以及40GB SSD的专用mysql服务器。 日志错误为: 120413 23:57:15 [Note] Plugin 'FEDERATED' is disabled. 120413 23:57:15 [Warning] option 'innodb-autoextend-increment': unsigned value 2000 adjusted to 1000 120413 23:57:15 InnoDB: Initializing buffer pool, size = 2.9G 120413 23:57:15 InnoDB: Completed initialization of buffer pool 120413 23:57:16 InnoDB: Started; log sequence number 0 44234 120413 …
25 mysql  innodb 

3
innodb_file_format梭子鱼
对于那些比较熟悉的人,我有几个问题。尽管有梭子鱼的支持,我的大多数实例仍在运行Antelope。 我一直在寻找一些压缩innodb表的方法。我的理解是,这仅在梭子鱼格式下可用。 我看到innodb_file_format是动态的,因此我可以不跳动地切换。我应该意识到这样做的任何含义。我只能说意味着将使用该格式创建新表或随后更改的表。这一切正确吗? 我希望不必经历所有表的转换。犹太洁食器是否在同一表空间中同时存在羚羊和梭子鱼表?即使有效,也有什么需要注意的地方吗? 从我阅读并从测试中收集的信息来看,答案是:是的。是。我不确定。 更新资料 自这篇文章发布以来,我一直在各种实例中运行一些动态表和一些压缩表。此外,我 当时忽略了阅读http://dev.mysql.com/doc/refman/5.5/en/innodb-file-format-identifying.html。 启用给定的innodb_file_format后,此更改仅适用于新创建的表,而不适用于现有的表。如果您确实创建了一个新表,则包含该表的表空间将被标记为具有该表功能所需的“最早”或“最简单”的文件格式。例如,如果启用文件格式梭子鱼,并创建未压缩且不使用ROW_FORMAT = DYNAMIC的新表,则包含该表的新表空间将被标记为使用文件格式Antelope。 因此,即使您允许梭子鱼,表也将被创建为羚羊。除非您将每个表都指定为row_format动态表或压缩表,否则混合是不可避免的。 没有迹象表明您在引入第一个梭子鱼表时应该进行完整的转储和重新加载(例如在升级主要版本的mysql时建议使用)


4
您如何识别InnoDB表损坏?
我有一些表已分区,并且在复制的从属服务器上有多个索引。将快照(已验证安全)复制到新的从属并将mysqld从5.1.42升级到5.5.15并重新启动复制后,我收到InnoDB崩溃的错误消息“ Invalid pointer ...”。 这些错误已在具有不同硬件和O / S的2台服务器上发生。运行后: ALTER TABLE .... COALESCE PARTION n; 该表的问题消失了。 我的问题是,范围更大,那就是“如何识别InnoDB表损坏?” 或改写为“您如何评估InnoDB表的运行状况?” 是“检查表”可用于识别问题预碰撞唯一的工具? 不确定是否重要,但是崩溃发生在运行:版本:'5.5.15-55-log'套接字:'/opt/mysql.sock'端口:3306 Percona Server(GPL),版本rel21.0,修订版158

1
MySQL交易大小-太大太大了吗?
我有一个经常运行的导入过程,我希望它是一种“全有或全无”的交易,又名:交易。 涉及的方面很多,进口量可能在10万至100万以上的记录之间。这相当于有效载荷范围从几MB到几百MB的数据。 我知道临时表是另一种选择-但是此方法似乎很方便。 对于这种在提交之间进行大量数据操作的做法,是否有需要注意的警告?(提交后在典型的写/索引加载突发之外)

6
在30,000,000行表上的DELETE命令未完成
我继承了一个数据库,并希望清理并加快它的速度。我有一个表,其中包含30,000,000行,由于代表程序员的错误,其中许多行都是垃圾数据。在添加任何新的,更优化的索引之前,我已将表从MyISAM转换为InnoDB,并希望删除很多包含垃圾数据的行。 数据库是MySQL 5.0,我具有对该服务器的root访问权限。我首先通过Adminer运行这些命令,然后通过phpMyAdmin运行,结果均相同。 我正在运行的命令是, DELETE FROM `tablename` WHERE `columnname` LIKE '-%' 本质上,删除此列中以破折号开头的所有内容-。 它运行大约3-5分钟,然后当我查看进程列表时,它就消失了。 然后我跑 SELECT * FROM `tablename` WHERE `columnname` LIKE '-%' 它返回数百万行。 为什么我的删除语句没有完成? PS,我知道MySQL 5.0是过时的。我正在努力将数据库移至MySQL 5.6 w InnoDB(也许是MariaDB 10 w XtraDB),但是直到发生这种情况之前,我一直希望使用DB来解决此问题。 - 编辑已删除,请参阅我的答案。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.