以前使用的MySQL存储引擎考虑到用多块硬盘放置各个库以便分散负载都是固定为MyISAM,现在搬迁到阿里云RDS后,考虑到查询效率及空间大小也保持继续用MyISAM。不过今天同事发现一个销售数据的网站在购物车结算的时候报错:
PDOException: SQLSTATE[HY000]: General error: 1785 When @@GLOBAL.ENFORCE_GTID_CONSISTENCY = 1, updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions,
在网上搜索了一下,说是不支持事务的问题,奇怪了以前在MySQL 5.1用MyISAM却是好的,也许是MySQL升级到5.6之后的问题吧。我对数据库的所有表进行了批量转换为InnoDB后,报错就消失了。好在销售网站的数据量不大、访问量也小,转换后对于RDS容量和速度都不会有影响。
评论