Tag Archives: innodb

为什么修改表后ibd文件这么大

By | 2015/08/31

最近碰到一个很奇怪的问题, 在更改一个 MyISAM 表为 InnoDB 存储引擎后, 表数据文件变的非常大. 原始的表为 MyISAM 引擎, 数据文件和索引文件如下所示: -rw-r—– 1 mysql mysql 8.7K Aug 17 13:34 user_follow.frm -rw-r—– 1 mysql mysql 1.9G Aug 17 13:35 user_follow.MYD -rw-r—– 1 mysql mysql 1.5G Aug 17 13:35 user_follow.MYI 表结构如下, 统计信息显示大概有 6.2kw记录, 平均行大小 31 字节: CREATE TABLE `user_follow` ( `uid` int(11) unsigned NOT NULL DEFAULT ‘0’,… Read More »

追踪MySQL中长时间运行的事务

By | 2014/12/10

https://github.com/yoshinorim/MySlowTranCapture 获取执行时间超过 milliseconds事务语句的工具; 很多时候我们需要追踪事务的执行情况以判定应用程序的操作行为, 比如启了事务, 却忘记提交而造成InnoDB事务的History List不断增大. 这是很复杂的场景, 因为很难找到一个有效的方式来识别是那种sql引起的这种问题, 追踪一个长时间运行的事务不像记录一条慢查询语句, 比如执行以下事务语句: ysql root@[localhost:s3306 test] > begin; Query OK, 0 rows affected (0.00 sec) mysql root@[localhost:s3306 test] > insert into b1 values(‘a’,’a’); Query OK, 1 row affected (0.00 sec) mysql root@[localhost:s3306 test] > commit; Query OK, 0 rows affected (0.00 sec)

MyISAM表转为InnoDB表注意事项

By | 2014/08/05

MyISAM转InnoDB表注意事项 基于引擎存储格式和索引组织方式的不同, 表从MyISAM引擎转换到InnoDB引擎需要注意以下事项: 1. AUTO_INCREMENT列不在多列索引的首位的MyISAM表不能转换 见 http://dev.mysql.com/doc/refman/5.5/en/replication-features-auto-increment.html , 包含AUTO_INCREMENT列的InnoDB表, innodb 表中只能设置1个auto 属性的列, 且 auto 列必须定义为 key, 可以是单 key, 也可以是组合 key, 如果是组合key, auto 列必须在最左边; 比如 MyISAM 支持 idx_name_id(`name`, `auto_id`) 的组合索引, 但是 InnoDB 不支持 idx_name_id(`name`, `auto_id`), 却可以支持 auto 列在最左边的情况: idx_id_name(`auto_id`, `name`);

innodb buffer pool 过小引起查询更新缓慢症状分析

By | 2014/05/14

场景: 业务(读写分离)的流量增大,使得MySQL Server压力增大很多, 表现为iostat显示频繁的写操作, master(只写)中show processlist出现大量的update线程, slave出现大量的select 线程; 表设计和索引相对正常(尽管整体的设计显得不合理,不过对于sql语句及表而言,尽管存在冗余的索引等信息,不过对于业务而言显得可以胜任); 分析: 1. master(只写说明): master说明:

What happened when too small innodb_log_file_size meet a too big transaction in Percona MySQL server.

By | 2014/02/11

ENV # Percona Toolkit System Summary Report ###################### Platform | Linux Release | CentOS release 5.5 (Final) Kernel | 2.6.35.5.R610.CentOS5.5-x64.OpenBeta.KVM.MPT Architecture | CPU = 64-bit, OS = 64-bit Threading | NPTL 2.5 Compiler | GNU CC version 4.1.2 20080704 (Red Hat 4.1.2-48). # Processor ################################################## Processors | physical = 2, cores = 4, virtual =… Read More »