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

在MySQL B.3.7已知问题

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

特定于平台的问题的信息,请参阅安装和调试指令2.1节,“一般安装指导”,MySQL 5.8节,“调试”

以下问题:

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

  • 即使您使用的lower_case_table_names = 2(这使得MySQL记住用于数据库和表名),MySQL不记得用于函数的数据库名称数据库()或者在不同的日志(在不区分大小写的系统)。

  • 放弃一个外键约束不复制工作,因为约束可能在复制另一个名字。

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

  • 截然不同的命令不工作GROUP_CONCAT ()如果不使用,只有那些在列截然不同的列表。

  • 当插入一个整数值(2之间63年和264年−1)成一个十进制或字符串列,这是插入一个负值,因为评估数量带符号整数上下文。

  • 与statement-based二进制日志,源服务器将执行查询写入二进制日志。这是一个非常快速、紧凑、高效的日志记录方法在大多数情况下,是完美的。然而,它是可能的来源上的数据和副本成为不同如果查询设计以这样一种方式,数据修改是不确定的(一般不推荐的做法,甚至外面的复制)。

    例如:

    当且仅当没有前面的查询命令条款保证确定的秩序

    例如,对于插入……选择没有命令,选择可能以不同的顺序返回行(导致一行有不同的等级,因此不同数量的吗AUTO_INCREMENT列),这取决于选择由优化器在源和复制品。

    查询优化不同的源和副本只有:

    • 使用不同的存储引擎表存储在源而不是复制品。(可以使用不同的存储引擎在源和复制品。例如,您可以使用InnoDB源,但是MyISAM副本如果副本可用磁盘空间更少。)

    • MySQL缓冲区大小(key_buffer_size等等)不同来源和副本。

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

    这个问题也会影响数据库恢复使用mysqlbinlog | mysql

    避免这个问题的最简单的方法是添加一个命令条款对上述不确定性查询以确保行总是或修改存储在相同的顺序。使用基于行的或混合日志格式还可以避免这个问题。

  • 日志文件的名字是基于服务器的主机名称如果不指定一个文件名的启动选项。保留相同的日志文件的名称,如果你改变你的主机名称,您必须显式地使用选项等——log-bin =old_host_name。看到5.1.6部分,“服务器命令选项”。另外,重命名旧文件,以反映您的主机名称的改变。如果这些二进制日志,您必须编辑二进制日志索引文件和解决二进制日志文件的名称。(同样适用于继电器日志副本。)

  • mysqlbinlog不会删除临时文件后离开吗加载数据声明。看到4.6.7部分,“mysqlbinlog -实用程序来处理二进制日志文件”

  • 重命名不工作临时表或表中使用合并表。

  • 当使用设置字符集中,您不能使用翻译人物数据库、表和列的名称。

  • 你不能使用_%逃避喜欢……逃避

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

  • 数值计算完成长整型数字(通常是64位长)。的精度依赖于函数。一般的规则是,一些功能执行长整型数字精度,如果()英语教学()长整型数字精密,剩下的精度。你应该尽量避免使用无符号长如果他们解决长值大于63位(9223372036854775807)以外的任何领域。

  • 你可以到255枚举列一个表。

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

  • 在一个更新语句,从左到右列更新。如果你指的是一个更新的列,得到更新后的值,而不是原始值。例如,以下语句的增量关键通过2,1:

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

    从temp_table mysql > SELECT *, temp_table t2;错误1137:无法打开表:“temp_table”
  • 优化器可能会处理截然不同的当您使用的是不同的隐藏的列一个比当你不加入。加入,隐藏的列数的结果(即使他们不是如图所示),而在正常查询,隐藏列不参与截然不同的比较。

    这方面的一个例子:

    选择不同的mp3id从band_downloads userid10bet手机中文版 = 9订单的id DESC;

    选择不同的band_downloads。10bet手机中文版从band_downloads 10bet手机中文版mp3id band_mp3 band_downloads的地方。用户id = 9和band_mp3。id = band_10bet手机中文版downloads。由band_downloads mp3i10bet手机中文版d秩序。id DESC;

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

    请注意,这仅供查询,没有发生命令列的结果。

  • 如果你执行过程在一个查询,返回一个空集,在某些情况下过程并不能把列。

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

  • 如果你使用ALTER TABLE添加一个独特的索引表中使用合并表,然后添加一个正常指数合并表,表的关键顺序是不同的如果有一个古老的,非独特的钥匙在桌子上。这是因为ALTER TABLE独特的索引之前正常索引能够尽早发现复制钥匙。