MySQL目录结构中的ord部分是什么?

MySQL目录结构中的ord部分是什么?,mysql,innodb,Mysql,Innodb,我试图理解dict col结构中的变量ord_部分 声明如下: http://osxr.org/mysql/source/storage/innobase/include/dict0mem.h#0428 上面写着未签名 ord_part:1; /*!< nonzero if this column appears in the ordering fields of an index */ 最后一个链接是ord_部分变为1的唯一位置。当我们添加索引时,

我试图理解dict col结构中的变量ord_部分

声明如下:

http://osxr.org/mysql/source/storage/innobase/include/dict0mem.h#0428 
上面写着未签名

 ord_part:1; /*!< nonzero if this column   appears in the ordering fields
              of an index */
最后一个链接是ord_部分变为1的唯一位置。当我们添加索引时,变量变为1。基于其他链接,我觉得1表示存储了次键的前缀


有人熟悉这个变量吗?这个变量是如何工作的

在仔细研究了源代码之后,下面是我的答案

ord_part本身没有任何意义。当我们添加索引时,它将始终变为1。如果此列上有索引,ord_部分必须为1。但是,如果ord_part为1,并不意味着此列必须有索引。这是MySQL bug()

它必须与其他变量或函数一起工作。当它们一起工作时,InnoDB可以从外部页面获取实际数据

有用的源代码:
在仔细研究了源代码之后,下面是我的答案

ord_part本身没有任何意义。当我们添加索引时,它将始终变为1。如果此列上有索引,ord_部分必须为1。但是,如果ord_part为1,并不意味着此列必须有索引。这是MySQL bug()

它必须与其他变量或函数一起工作。当它们一起工作时,InnoDB可以从外部页面获取实际数据

有用的源代码:

这个列表上的“纯”程序员太少了,它是
DBA
.SE。我不想显得毫无帮助,但您最好尝试一下
内部
列表,或者可能是StackOverflow,或者可能是comp.lang.c?这里的程序员都是SQL程序员,而不是C专家。在这个列表中,只有很少的“纯”程序员-这是
DBA
.SE。我不想显得毫无帮助,但您最好尝试一下
内部
列表,或者可能是StackOverflow,或者可能是comp.lang.c?这里的程序员是SQL程序员,而不是C专家。
http://osxr.org/mysql/source/storage/innobase/row/row0row.cc#0134

http://osxr.org/mysql/source/storage/innobase/row/row0row.cc#0352

http://osxr.org/mysql/source/storage/innobase/dict/dict0dict.cc#1949

http://osxr.org/mysql/source/storage/innobase/dict/dict0dict.cc#2308