以前使用的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容量和速度都不會有影響。
评论