B.4.7 MySQL 中的已知问题

本节列出了最新版本的 MySQL 中的已知问题。

有关特定于平台的问题的信息,请参阅第 2.1 节“常规安装指南”第 28.5 节“调试和移植 MySQL”中的安装和移植说明。

已知以下问题:

For example:

当且仅当前面的查询中没有ORDER BY子句保证确定性 Sequences 时

例如,对于没有ORDER BY插入...选择SELECT可能以不同的 Sequences 返回行(这导致行具有不同的排名,因此在AUTO_INCREMENT列中获得不同的数字),这取决于源上优化器的选择。和副本。

仅在以下情况下,查询在源和副本上的优化有所不同:

这个问题也可能影响使用 mysqlbinlog | mysql **进行数据库还原。

避免此问题的最简单方法是在上述非确定性查询中添加ORDER BY子句,以确保始终以相同 Sequences 存储或修改行。使用基于行或混合的日志记录格式也可以避免此问题。

mysql> UPDATE tbl_name SET KEY=KEY+1,KEY=KEY+1;
mysql> SELECT * FROM temp_table, temp_table AS t2;
ERROR 1137: Can't reopen table: 'temp_table'

例如:

SELECT DISTINCT mp3id FROM band_downloads
       WHERE userid = 9 ORDER BY id DESC;

and

SELECT DISTINCT band_downloads.mp3id
       FROM band_downloads,band_mp3
       WHERE band_downloads.userid = 9
       AND band_mp3.id = band_downloads.mp3id
       ORDER BY band_downloads.id DESC;

在第二种情况下,您可能在结果集中得到两个相同的行(因为隐藏的id列中的值可能不同)。

请注意,这仅适用于结果中没有ORDER BY列的查询。

首页