Xupeng's blog

Mar 13, 2012 - 2 minute read - Comments

MySQL-python: Commands out of sync

在给 MySQL 数据库访问层增加新功能时遇到了这样的错误:

ProgrammingError: (2014, "Commands out of sync; you can't run this command now")

之前零星地见到过几次,因为发生频度很低,就没有太在意,这次找了一下原因,MySQL 文档对 Commands out of sync 错误的描述是这样的:

Feb 8, 2012 - 4 minute read - Comments

类型转换对 MySQL 选择索引的影响

遇到了几例 MySQL 没用使用预期索引的问题,读了些文档之后,发现 MySQL 的类型转换对索引选择的影响还真是一个不大不小的坑。

比如有这样一张 MySQL 表:

CREATE TABLE `indextest` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(10) DEFAULT NULL,
  `age` tinyint(3) unsigned NOT NULL DEFAULT '0',
  `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  KEY `idx_name` (`name`),
  KEY `idx_age` (`age`),
  KEY `idx_create` (`create_time`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=latin1

Feb 4, 2012 - 2 minute read - Comments

MySQL 的临时目录

MySQL 服务器设置的 binlog 单文件最大为 1GB,偶然发现会有十几 GB 大小的 binlog 文件,从产生的时间上看像是某个 cron job 使用了超大的 transaction,为了找出“罪魁祸首”,我需要分析一下 binlog。