10bet网址
MySQL 8.0参考手册
相关的文档10bet官方网站 下载本手册 本手册摘录

B.3.7 MySQL已知问题

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

有关特定于平台的问题的信息,请参见中的安装和调试说明第2.1节,“一般安装指导”,第5.9节“调试MySQL”

已知以下问题:

  • 子查询优化并不那么有效=

  • 即使你使用lower_case_table_names = 2(这使得MySQL能够记住用于数据库和表名的case), MySQL不记得用于函数的数据库名的case数据库()或者在各种日志中(在不区分大小写的系统中)。

  • 放弃一个外键约束在复制中不起作用,因为约束在副本上可能有另一个名称。

  • 代替(和加载数据代替选项)不触发在删除级联

  • 截然不同的订购不能在里面工作group_concat()如果不使用所有列,而只使用截然不同的列表。

  • 插入大整数值时(2之间63.和264.-1)进入十进制或字符串列,它被插入为负值,因为在符号整数上下文中评估了数字。

  • 使用基于语句的二进制日志记录,源服务器将执行的查询写入二进制日志。这是一种非常快速、紧凑和高效的日志记录方法,在大多数情况下都能完美地工作。但是,如果查询的设计方式是不确定的(通常不推荐这样做,即使在复制之外),则源和副本上的数据可能会不同。

    例如:

    当且仅当上述查询没有订购保证确定性秩序的条款

    例如,对于插入...选择没有订购, 这选择可能返回不同顺序的行(这导致行有不同的级别,因此在AUTO_INCREMENT列),取决于优化器在源和副本上的选择。

    只有在源和副本上的不同之处,查询在源和副本上进行了优化

    • 源上使用与副本上不同的存储引擎存储表。(可以在源和副本上使用不同的存储引擎。例如,您可以使用Innodb.在来源,但myisam.如果副本具有较少可用的磁盘空间,则在副本上。)

    • MySQL缓冲区大小(key_buffer_size.,等等)在源和副本上是不同的。

    • 源和副本运行不同的MySQL版本,优化器代码在这些版本之间不同。

    此问题也可能影响数据库恢复使用mysqlbinlog | mysql

    避免这个问题最简单的方法是添加一个订购子句上述非确定查询,以确保行始终以相同的顺序存储或修改行。使用基于行或混合日志记录格式也避免了问题。

  • 如果没有指定带有启动选项的文件名,则日志文件名基于服务器主机名。如果您将主机名更改为其他名称,则要保留相同的日志文件名,必须显式地使用诸如- -log-bin =old_host_name.看第5.1.7节,“服务器命令选项”.或者,重命名旧文件以反映您的主机名更改。如果这些是二进制日志,则必须编辑二进制日志索引文件并在那里修复二进制日志文件名。(继电器上的Reps上也是如此。)

  • mysqlbinlog.不删除临时文件后留下的加载数据陈述。看第4.6.9节“mysqlbinlog - 处理二进制日志文件的实用程序”

  • 改名不适用于暂时的在a中使用的表格或表格合并表格

  • 使用时设置字符集,不能在数据库、表和列名中使用翻译后的字符。

  • 在MySQL 8.0.17之前,您无法使用_或者逃脱喜欢......逃避

  • 服务器只使用第一个max_sort_length.比较数据值时的字节。这意味着值不能可靠地使用集团订购, 或者截然不同的如果它们只在第一个之后不同max_sort_length.字节。为了解决这个问题,增加变量值。的默认值max_sort_length.是1024,可以在服务器启动时或运行时更改。

  • 用数字计算完成big或者(两者通常是64位长)。您获得的精确度取决于功能。一般规则是执行位函数big精确,如果()英语教学()big或者精度,其余部分精确。如果它们决定大于63位(922337203685475807),则应尝试使用无符号长的长值(922337203685475807)。

  • 你最多可以有255岁枚举列在一个表中。

  • MIN()MAX (),和其他聚合函数,MySQL目前比较枚举列由其字符串值而不是字符串在集合中的相对位置。

  • 在A.更新声明,列从左到右更新。如果您引用更新的列,则会获得更新的值而不是原始值。例如,以下语句增量钥匙经过2不是1

    mysql>更新tbl_name设置键=键+ 1,键=键+ 1;
  • 可以在同一个查询中引用多个临时表,但不能多次引用任何给定临时表。例如,以下不工作:

    mysql>从temp_table,temp_table选择*作为t2;错误1137:无法重新打开表:'temp_table'
  • 优化器可以处理截然不同的不同的是,当你使用一个加入列的列比你不是。在连接中,隐藏的列被计算为结果的一部分(即使它们未显示),而在正常查询中,隐藏列不会参与其中截然不同的比较。

    这一例子是:

    从BAND_DOWNLOADS中选择不同的MP3ID,其中use10bet手机中文版rid = 9按ID DESC订购;

    从band_downloads,band_10bet手机中文版mp3中选择distinct band_downloads.mp3id。bydr_downloads.userid = 9和band_mp3.id = band_downloads.mp3 and顺序由band_downloads.id desc命令;

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

    注意,这只会发生在没有订购结果中的列。

  • 如果你执行一个程序在返回空集的查询上,在某些情况下程序不转换列。

  • 创建类型表合并不检查底层表是否兼容类型。

  • 如果你使用改变表添加一个独特索引到一个表中使用的表合并表然后添加正常索引合并表,键顺序是不同的表,如果有一个旧的,非独特键入表格。这是因为改变表独特索引在普通索引之前,以便能够尽早检测重复的键。