字段索引
简介
索引是为了提高数据查询速度而开发的,字段索引(以下称为索引)是基于mysql索引实现的,所以遵循mysql索引的一些特点。
- 支持创建索引的字段:单行文本、数字、下拉框、单选按钮组、流水号、成员单选、部门单选控件;其他控件不适合建立索引。
字段索引的优点:
- 加快数据根据条件查询的速度。
- 在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。
- 当数据量多时,索引提高查询速度的效果更明显。
注意:当对表单中的数据进行增加、删除和修改的时候,索引也要动态的维护。
索引规则
- 主表索引和子表单索引是分开设置的,即选择主表字段就不能选择子表字段,选择子表字段就只能选择本子表单内字段;
- 创建组合索引时选择的字段顺序不一样是不同的索引,如选择字段 单行文本+数字 和 数字+单行文本 所创建的索引是两个不同的索引。
- 每个表单最多创建十个索引,组合索引最多支持三个,每个组合索引最多支持三个控件。
- 索引支持添加和删除,以及被动删除。字段索引设置页面可以主动添加和删除管理,被动删除指设计表单时,删除了字段,那么对应的索引设置会修改或者删除。
创建索引
步骤:【表单设计】——【表单设置】——【字段索引】——【新建索引】
在索引设计页输入合法数据后,保存,索引就新建完成了。
- 索引名称:支持自定义索引名称。
- 索引模式有两种:单列索引和组合索引。
- 单列索引指一个索引只包含单个控件,一个表可以有多个单列索引;
- 组合索引指一个索引包含多个控件。
- 字段类型:字段类型可选普通字段和子表单。
- 索引字段:根据字段类型显示,当字段类型为普通字段时,索引字段显示主表字段;当字段类型为子表单字段时,索引字段显示该子表单字段。
删除索引
当不需要某索引时,可点击其删除按钮将其删除。
索引适用场景
可用场景
需要使用条件进行数据筛选的时候,适用设置字段索引。
- 1、表单查询
步骤:【表单设计】——【录入数据】——【数据管理】——【筛选条件】
- 当设置的查询条件为索引字段且筛选条件操作符为等于或等于任意一个时,字段索引即可生效。
- 2、报表查询
① 报表筛选条件
步骤:【报表编辑】——【添加数据源并设置字段】——【筛选条件】——【添加筛选器】
- 当设置的查询条件为索引字段且筛选条件操作符为等于或等于任意一个时,索引字段即可生效。
- 当报表访问,设置的查询条件为索引字段且筛选条件操作符为等于或等于任意一个时,索引字段即可生效。
② 报表过滤条件
步骤:【报表】——【报表编辑】——【添加数据源并设置字段】——【过滤条件】;
- 当过滤条件为索引字段且过滤条件操作符为等于或等于任意一个时,索引字段即可生效。
- 3、后端数据操作
后端api的数据操作
和句柄操作
中的数据接口,带where条件时触发。
- 4、删除大量数据
当以索引控件为条件删除数据时可适用索引。
- 5、表单数据关联联动
在使用数据联动、关联数据、关联查询时,可用索引字段作为关联或联动条件。
-
6、频繁作为查询条件的控件应该创建索引。
-
7、查询中排序的控件创建索引将大大提高排序的速度
不可用场景
- 1、频繁更新的控件不适合创建索引,因为每次更新不单单是更新记录,还会更新索引,保存索引文件;
- 2、查询条件里用不到的字段,不创建索引;
- 3、表记录太少,不需要创建索引;
- 4、某些数据包含大量重复数据,因此他建立索引就没有太大的效果,例如性别字 段,只有男女,不适合建立索引;
- 5、当修改数据性能远远大于检索性能时,不应该创建索引;
- 6、当查询条件使用函数时,不创建索引;
- 7、当操作符为除了等于或等于任意一个以外时,不适合创建索引;
组合索引的添加建议
-
组合索引的建立需要有关系的控件,组合索引适用查询数据时需要同时多个条件去筛选的情况。
-
如经常需要对某个班级中某个等级的数据进行查询,那么可以建立组合索引,加快查询。但是如果很少用到 班级+等级的模式,不建议使用组合索引。
-
为了使索引最大化命中,在创建组合索引时,选择的控件顺序建议为:内容重复值最少的放在前面,比如一个控件95%的值都不重复,那么一般可以将这个控件放最前面。
如上图例子中,销售日期控件中出现的日期会有很多,而销售人只有三个,销售人的重复值就会很多,所以创建组合索引时先设置的控件顺序为:销售日期+销售人。
组合索引命中规则 :设置 A+B字段模式,实际建立索引为A、A+B 那么条件中使用 A 命中 A+B命中 A+B+C命中 B不命中 。