MySQL 不能用create table as select 的原因

1、新表不会自动创建创建和原表相同的索引。 2、一个事务中混合了事务和非事务语句。它会提交当前和未完成的事务。 例如,该例子中,第2个update未执行成功,会导致第1个update回滚,但是其中的CTAS语句为DDL操作,无法回滚。 解决办法:使用临时表create temporary table ,退出会话后临时表自动删除。 begin; update accounts set amount

Read more

Dataguard LNS进程10g到12c的演变

公司生产库11gR2 DataGuard报出错误,显示LNS无法将日志传输到备库上。

查看trace xxxx_nsa3_77487.trc

里面提及了NSS、NSA,之前没有注意过这些进程, 那么它们的用途是什么? Oracle 11gR1及之前版本 Oracle

Read more

order by + limit 改写优化

order by +limit 常用于分页功能。本案例中,用ID列进行排序,除了查询ID列外,还查询了value和stuffing列。这种情况容易出现性能问题或者不是性能最优的SQL写法。

测试中发现,如果t_limit为MySIAM。很容易出现性能问题,执行计划走全表扫描不走索引。 现在几乎不用MySIAM,所以本文测试结果基于I

Read more

Last_IO_Error: Got fatal error 1236 from master when reading data from binary log

很久不关注MHA,最近看到已经升级到 MHA 0.58,开始支持MySQL的GTID。 GTID对于MySQL复制而言,已经是一场革命。复制变得更加简单,创建复制从库时无需指定主库的file和position,新引入的 master_auto_position=1 即可自动比对主从库之间的binlog差异,自动进行同步,无疑大大节省了DBA操作成本。 GTID的引入,对于DBA而言增加了学习成本。

Read more