创建索引

可以使用一个或多个字段创建集合索引。用于创建这些索引的方法是mysqlx.Collection.create_index ()下面几节描述函数所需的参数和一些使用示例。

理由mysqlx.Collection.create_index ()

使用mysqlx.Collection.create_index ()我们需要指定要创建的索引的名称和作为索引一部分的成员,此外,对于每个成员,我们需要指定文档中保存字段的数据类型,以及是否需要。标记为required的字段必须出现在集合中的每个文档中。

“字段”[{“字段”member_path#需要str“类型”member_type# required str,必须是有效类型“要求”member_required# optional, True或(默认)False“排序”排序#可选str仅用于文本字段类型“选项”选项# optional (int)仅适用于GEOJSON字段类型“srid”srid},# optional (int)仅适用于GEOJSON字段类型#{…更多的成员,#重复了很多次根据需要#}],“类型”类型#可选,空间或(默认)索引

的有效类型类型领域是:

  • INT(无符号)

  • 非常小的整数(无符号)

  • 短整型(无符号)

  • MEDIUMINT(无符号)

  • 整型(无符号)

  • 长整型数字(无符号)

  • 真正的(无符号)

  • 浮动(无符号)

  • 双(无符号)

  • 小数(无符号)

  • 数字(无符号)

  • 日期

  • 时间

  • 时间戳

  • DATETIME

  • 文本((长度))

  • GEOJSON(额外选项:options, srid)

注:使用类型GEOJSON需要索引类型被设置为空间

使用mysqlx.Collection.create_index ()

首先,我们需要获得一个会话和一个模式。

进口mysqlx#连接服务器会话mysqlxget_session({“主机”“localhost”“端口”33060“用户”“迈克”“密码”“s3cr3t !”})模式会话get_schema“测试”

下一步是创建一个示例集合。

在模式中创建“collection_GOT模式create_collection“collection_GOT”#从模式中获取collection_GOT集合模式get_collection“collection_GOT”

下面的示例演示如何创建带有name的简单索引index_age它将使用一个字段年龄将保存整数值的文档。

集合create_index“index_age”“字段”[{“字段”“年龄”“类型”“INT”}),“类型”“指数”})

下面的示例演示如何创建带name的多字段索引index_name它将使用字段family_name而且的名字来自将保存小文本的文档。这一次,要求成员已设置为真正的,这意味着该集合中的所有文档都需要这些字段。

集合create_index“index_name”“字段”[{“字段”“family_name”“类型”“文本”(12)“要求”真正的}),“字段”[{“字段”“名称”“类型”“文本”(12)“要求”真正的}),“类型”“指数”})

下面的示例演示如何创建带name的多字段索引geojson_name,它将使用带有GEOJSON数据的字段,因此将需要索引类型被设置为空间,它将使用这些字段.geoField美元.intField美元.floatField美元而且.dateField美元.每个字段包含文件名称的复合数据。注意,通过设置空间到索引类型我们将需要为每个成员设置要求真正的,这意味着该集合中的所有文档都需要这些字段。

集合create_index“index_age”“字段”[{“字段”“.geoField美元”“类型”“GEOJSON”“要求”“选项”2“srid”4326},“字段”“.intField美元”“类型”“INT”“要求”真正的},“字段”“.floatField美元”“类型”“浮动”“要求”真正的},“字段”“.dateField美元”“类型”“日期”“要求”真正的}),“类型”“空间”})