Articles of innodb

对生产中的MySQL InnoDB表进行碎片整理最好的做法是什么?

我的很多Innodb表需要“碎片整理”。 我的理解是,“优化”可能不是最好的办法。 有人build议做一个“ALTER TABLE”来让Mysql重build(并因此整理)表。 有没有人有什么build议(根据经验)什么是对Innodb生产表进行碎片整理的最佳方法?

我需要知道什么才能更改正在复制的表模式?

我需要更新架构,因为我不小心遗漏了一些外键约束。 数据库服务器是MySQL 5.1.48,被更改的表是InnoDB。 服务器使用主/从复制。 我需要知道什么才能正确地更改生产数据库模式?

这是更快的mysqldump /恢复或改变表?

我有InnoDB数据库,他们使用相同的ibdata文件,这个ibdata的大小是250G左右。 现在我有一个100G左右的数据库。 我的经理要求我把这个数据库移到另一台服务器上,并使用innodb_file_per_table。 现在我不能离开系统很长一段时间。 所以我需要你的build议,这是更快: mysqldump -uusername -pmypassword –extended-insert –disable-keys –quick MyDb> Mydb.sql,然后在第二台服务器上mysql -uusername -ppass mydb 或者将ibdata文件复制到我的另一台服务器上,然后遍历所有表格,然后执行以下操作: ALTER TABLE table_name DISABLE KEYS; ALTER TABLE table_name engine = myisam; ALTER TABLE table_name engine = innodb; ALTER TABLE table_name启用KEYS; 如果你有更好的想法,请与我们分享! 谢谢你的帮助

InnoDB和MyISAM表在交易过程中断电会发生什么?

我们有两个MySQL表,一个是InnoDB,另一个是MyISAM。 如果我在两个表上的一个事务中执行一块插入,并且中间断电,那么状态是什么? InnoDB和MyISAM表中新插入的数据会发生什么?

监视MySQL回滚段

我最近在MySQL中发现了1024的默认开放事务上限。 我已经使用innodb_extra_rsegments增加了限制。 不过,我想继续关注这一进展。 我的MySQL版本是5.1.48。 有没有办法在某个时间点监控未完成交易?

Mysqld InnoDB崩溃

我的MySQL服务器崩溃,我无法重新启动/恢复它。 我试过了: /etc/init.d/mysql restart Stopping MySQL database server: mysqld. Starting MySQL database server: mysqld . . . . . . . . . . . . . . failed! 和 mysqld –verbose –innodb_force_recovery=4 120528 18:44:28 [Warning] '–log_slow_queries' is deprecated and will be removed in a future release. Please use ''–slow_query_log'/'–slow_query_log_file'' instead. 120528 18:44:28 [Warning] '–default-character-set' […]

MySQL从数据文件恢复innodb

昨天晚上,我的MySQL服务器崩溃,现在我有几个数据库,我无法恢复的数据。 根据错误日志,表空间中的危险发生在不久前(几个月),但是没有人注意到,昨天,当MySQL崩溃(出于完全不同的原因),它只是没有开始以下错误: 2015-06-09 23:09:23 14642 [Note] InnoDB: Starting crash recovery. 2015-06-09 23:09:23 14642 [Note] InnoDB: Reading tablespace information from the .ibd files… 2015-06-09 23:09:24 14642 [ERROR] InnoDB: Tried to read 16384 bytes at offset 0. Was only able to read 0. 2015-06-09 23:09:24 7f648369a7e0 InnoDB: Operating system error number 2 in a file operation. InnoDB: […]

InnoDb开销?

我刚刚从MyISAM转换了几个大表到InnoDB。 当我在phpMyAdmin中查看表时,他们显示了大量的开销(一个表有6.8GB)。 优化这些表(InnoDB上不支持的命令)不会像在MyISAM上那样受到影响。 这是InnoDB拥有不断增长的数据文件的结果,即使在删除之后永远不会返回空间。 如果是这样的话,我从来没有见过像其他InnoDB表格那样的开销。 有没有办法清理这个? 编辑:这是我试过的东西(没有成功): 优化表格 通过主键重新sorting表 整理表格

MySQL的innodb_file_per_table和“太多的表”

我运行的MySQL(5.0,但我不认为这对4.1之后的任何事情),我已经看到有关使用innodb_file_per_table表的innodb_file_per_tableconfiguration选项的build议。 通常这样做是为了更好地控制InnoDB表使用多less磁盘空间,因为即使该表稍后被丢弃,该空间也不会被恢复。 但是,每当我看到这个build议是说,如果你没有很多的表( 这里是一个例子)使用它。 所以我的问题是,有多less桌子太多了? 我有一个应用程序正在运行许多不同的客户端(大约50,但可能会增长到接近100),每个数据库有135个表中。 13,500张桌子太多了吗?

Facebook的Flashcache回写块caching

我对Facebook的代码很感兴趣,这个代码又被扔到了墙上。 FlashCache … 听起来很快,使用SSD来帮助扩展InnoDB / MySQL,但是它被devise成一个通用的caching模块,可以用在任何块设备之上的任何应用程序上。 有人试过吗? 还是用它? 干杯