Erlang 为什么我的记忆指数处于这个位置?

Erlang 为什么我的记忆指数处于这个位置?,erlang,elixir,mnesia,Erlang,Elixir,Mnesia,我知道Tab是第一个索引,但是为什么索引不是在2而不是3上呢?索引是以1为基础而不是以0为基础的,还是有其他原因在起作用?Mnesia表包含具有类似记录格式的元组。在您的示例中,存储在:users表中的元组如下所示: iex(6)> :mnesia.table_info(:users, :attributes) [:id, :email, :foo, :inserted_at, :updated_at] iex(7)> :mnesia.table_info(:users, :ind

我知道Tab是第一个索引,但是为什么索引不是在2而不是3上呢?索引是以1为基础而不是以0为基础的,还是有其他原因在起作用?

Mnesia表包含具有类似记录格式的元组。在您的示例中,存储在:users表中的元组如下所示:

iex(6)> :mnesia.table_info(:users, :attributes)
[:id, :email, :foo, :inserted_at, :updated_at]

iex(7)> :mnesia.table_info(:users, :index)     
[3]

iex(8)> :mnesia.add_table_index(:users, :email)
{:aborted, {:already_exists, :users, 3}}
其中映射到:

{:users, 1, "f@b.com", "foo", {2016, 12, 24}, {2016, 12, 31}}

由于元组是基于1的,因此为:email值创建的索引将在元组的位置3上创建。

Mnesia表包含具有类似记录格式的元组。在您的示例中,存储在:users表中的元组如下所示:

iex(6)> :mnesia.table_info(:users, :attributes)
[:id, :email, :foo, :inserted_at, :updated_at]

iex(7)> :mnesia.table_info(:users, :index)     
[3]

iex(8)> :mnesia.add_table_index(:users, :email)
{:aborted, {:already_exists, :users, 3}}
其中映射到:

{:users, 1, "f@b.com", "foo", {2016, 12, 24}, {2016, 12, 31}}
由于元组是基于1的,因此为:email值创建的索引将在元组的位置3上创建