现在的位置:主页 > 期刊导读 >

基于表结构转换的数据查询优化技术研究(2)

来源:电子元器件与信息技术 【在线投稿】 栏目:期刊导读 时间:2021-05-06 05:06

【作者】:网站采编

【关键词】:

【摘要】b)外形尺寸与产品是多对一关系 外形尺寸作为产品的域,如果一条产品有N个外形尺寸,则视为N条产品。 c)封装形式、质量等级与产品是多对多关系 封

b)外形尺寸与产品是多对一关系

外形尺寸作为产品的域,如果一条产品有N个外形尺寸,则视为N条产品。

c)封装形式、质量等级与产品是多对多关系

封装形式、质量等级作为产品的域,封装形式跟着外形尺寸走,如果一条产品有N个质量等级,则视为N条产品。

d)性能参数与产品也是多对多关系

将性能参数的id+value作为产品的域。

众所周知,关系型数据库的表结构确定之后,每一行都有相同的列数。Elasticsearch是一种列式存储数据库,每个文档的域都能根据自身的情况动态增减,由于不同的元器件的性能参数不一样,所以利用此特性,可以为每个文档动态添加域。通过调整,Elasticsearch中的产品类型结构如表 2所示。

集合域不会影响检索效率,但不利于参数处理,所以还是要尽可能地消除,必要地添加冗余字段。

2.2 数据存储

a)产品数据存储

Elasticsearch中元器件产品数据的存储结构如表2所示。

b)筛选条件存储

针对产品筛选时,首次查询速度慢的问题,采用预存储机制。由于第一次筛选条件只有产品分类,所以在初始化数据时,按产品类别把筛选条件存入Elasticsearch中,这样即可在查询时直接按类别查找这些参数,无需检索出数据再处理。

表2 Elasticsearch中产品类型结构域名 类型 备注id string 文档id,业务无关,仅作唯一标志proId long 关系型数据库产品id,即原始数据uri proName string 产品名称proType string 产品系列proModel string 型号规格supplierId long 供应商id supplierName string 供应商名称classId long 产品分类id className string 产品分类名称classCode String 产品分类编码supplyStatus long 供货状态datasheetPath string 产品手册proImgPath1 string 产品图片auditStatus long 审核状态onSale long 上/下架状态param4 long 供应商状态shapeSize string 外形尺寸packStyle string 封装形式qualityLevel string 质量等级performances Set<Map<String, Object>>集合域 性能参数para1 long 这些都是动态域,每个性能参数都能转换成一个域, 范围域 (如per_363_-5~125℃) 或典 型 值 域 ( 如per_366_1 000 V), 形式为id+value,域值为1 para2 long para3 long para4 long……

2.3 数据检索

用户在检索时,提交的筛选条件包括产品分类id、供应商id、质量等级、外形尺寸、封装形式、性能参数和关键字。关于各种筛选条件的查询规则如下所述。

a)产品分类编码遵循GJB 8118-2013标准[8],一级分类为4位数字编码,二级分类以一级分类为前缀,补充2位编码,依此类推。例如:电阻器的编码为5905,其子类固定电阻器编码为。查询某一类别产品,需要返回所有的子孙类别产品。因此,当产品分类id提交到后台,可以根据id查到编码,并对产品中的classCode进行前缀匹配。

b)供应商id、质量等级、外形尺寸和封装形式分别精确匹配产品中的 supplierId、 quaityLevel、 shapeSize和packStyle,并且不分词。

c)性能参数传到后台为参数id及相应的value,将id+value作为域名,匹配存在该域的产品。

d)关键字模糊匹配产品名称、型号规格、分类名称和厂家名称。

3 优化效果

优化前后的效果对比如图4和图5所示。以60多万条数据为例,检索用时从原来的2.4 min减少到144 ms(即 144 s减为 0.144 s), 提速 1 000倍,优化效果显著。更重要的是,原来的查询速度会随着数据量的剧增而急剧变慢,但优化之后的查询速度几乎不受数据量的影响。

4 结束语

本文对当前元器件选型工作流程进行了分析,系统地梳理出元器件基础信息和各项参数,在剖析现有表结构的基础上,重构了表关系,并利用Elasticsearch的倒排索引、列式存储等技术特性和预存储机制,提升了元器件选型的检索速度,极大地改善了用户体验。

图4 优化前的检索用时

图5 优化后的检索用时

[1]许实清,熊惠,王琳.装备电子元器件国产化工程实践 [J].电子产品可靠性与环境试验,2018,36(S1): 258-261.

[2]陈泫文,丁春光,葛智君,等.基于元器件参数的电容器选型工具设计研究 [J].电子产品可靠性与环境试验,2018,36(1): 65-69.

[3]张永亮,侯俊.关系型数据库的规范化方法研究[J].通化师范学院学报,2013, 34 (6): 31-32.

[4]林俊鸿,姜琨,杨岳湘.倒排索引查询处理技术[J].计算机工程与设计,2015, 36(3) : 572-575;580.

文章来源:《电子元器件与信息技术》 网址: http://www.dzyqjyxxjs.cn/qikandaodu/2021/0506/1170.html

上一篇:元器件全寿命周期数据智能应用
下一篇:基于设计需求的企业元器件数据资源平台建设