当前位置: 首页 > news >正文

惠州建设企业网站电商网站设计

惠州建设企业网站,电商网站设计,重庆市项目经理在建查询,做网站的软件去哪里买最近做一个需求,关于SQL高可用优化,需要优化项目中的SQL,提升查询效率。 SQL高可用优化 一、优化SQL包含distinct场景二、优化SQL中Where条件中索引字段是否为NULL三、代码验证1. NodeMapper2. NodeService3. NodeController4.数据库数据5.项…

最近做一个需求,关于SQL高可用优化,需要优化项目中的SQL,提升查询效率。

SQL高可用优化

  • 一、优化SQL包含distinct场景
  • 二、优化SQL中Where条件中索引字段是否为NULL
  • 三、代码验证
    • 1. NodeMapper
    • 2. NodeService
    • 3. NodeController
    • 4.数据库数据
    • 5.项目结构及源码

一、优化SQL包含distinct场景

1.1 原因
数据量:数据量越大,DISTINCT操作需要的时间和资源越多。
索引:如果查询中涉及到的列没有索引,数据库引擎可能需要全表扫描来执行DISTINCT操作,导致性能下降。
数据分布:如果数据分布不均匀,即某些值出现频率较高,DISTINCT操作会更耗时。
1.2 优化措施
(1)可以利用Set集合进行存储,Set集合会自动对数据进行去重
(2)可以用lambda表达式中distinct()方法进行去重

二、优化SQL中Where条件中索引字段是否为NULL

1.1 原因
对索引字段进行非空检查时,数据库可能会选择全表扫描而不是使用索引,因为索引中不包含NULL值,这会降低查询性能。
1.2 优化措施
在service层利用lambda表达式中进行去重

三、代码验证

1. NodeMapper

@DS("mysql1")
@Repository("NodeMapper")
public interface NodeMapper extends BaseMapper<NodeVo> {@Select("select distinct esn from node_vo where name like 'GTS5900%'")List<String> getNodeListByName(String name);@Select("select esn from node_vo where name like 'GTS5900%'")Set<String> getNodeSetByName(String name);@Select("select esn from node_vo where name like 'GTS5900%'")List<String> getNodeListNoDistinctByName(String name);@Select("select esn from node_vo where esn like 'msk00%' and name != ''")List<NodeVo> getNodeListNoEmptyNameByEsn(String esn);@Select("select esn from node_vo where esn like 'msk00%'")List<NodeVo> getNodeListByEsn(String esn);
}

2. NodeService

@Service
public class NodeService {@Autowiredprivate NodeMapper nodeMapper;public List<String> getNodeListByName(String name){// 通过sql语句中distinct去重return nodeMapper.getNodeListByName(name);}public Set<String> getNodeSetByName(String name){// 通过set集合去重return nodeMapper.getNodeSetByName(name);}public List<String> getNodeListNoDistinctByName(String name){// 通过xxx.stream().distinct()去重List<String> nodeListNoDistinctByName = nodeMapper.getNodeListNoDistinctByName(name);return nodeListNoDistinctByName.stream().distinct().collect(Collectors.toList());}public List<NodeVo> getNodeListNoEmptyNameByEsn(String esn){return nodeMapper.getNodeListNoEmptyNameByEsn(esn);}public List<NodeVo> getNodeListByEsn(String esn){return nodeMapper.getNodeListByEsn(esn);}
}

3. NodeController

@RestController
public class NodeController {@Autowiredprivate NodeService nodeService;@RequestMapping("getNodeListByName")public List<String> getNodeListByName(String name) {// 通过sql语句中distinct去重return nodeService.getNodeListByName(name);}@RequestMapping("getNodeSetByName")public Set<String> getNodeSetByName(String name) {// 通过set集合去重return nodeService.getNodeSetByName(name);}@RequestMapping("getNodeListNoDistinctByName")public List<String> getNodeListNoDistinctByName(String name) {// 通过xxx.stream().distinct()去重return nodeService.getNodeListNoDistinctByName(name);}@RequestMapping("getNodeListNoEmptyNameByEsn")public List<String> getNodeListNoEmptyNameByEsn(String esn) {// 通过sql过滤name不为null的值List<NodeVo> nodeListNoEmptyNameByEsn = nodeService.getNodeListNoEmptyNameByEsn(esn);return nodeListNoEmptyNameByEsn.stream().map(NodeVo::getEsn).collect(Collectors.toList());}@RequestMapping("getNodeListByEsn")public List<String> getNodeListByEsn(String esn) {// 通过xxx.stream().filter()过滤name不为null的值List<NodeVo> nodeListByEsn = nodeService.getNodeListByEsn(esn);return nodeListByEsn.stream().map(NodeVo::getEsn).filter(Objects::nonNull).collect(Collectors.toList());}
}

4.数据库数据

在这里插入图片描述

5.项目结构及源码

源码下载地址demo-springboot-mybatisplus,欢迎Star !
在这里插入图片描述
由于项目集成了SaToken框架,需要先登录,再访问测试NodeController接口
在这里插入图片描述
在这里插入图片描述

http://www.yayakq.cn/news/394279/

相关文章:

  • 图书馆网站建设策划设计师网络接单
  • 阿里云怎么上传网站外包平台都有哪些
  • 中企动力网站案例天津平台网站建设设计
  • 网站建设新发展辽宁城乡建设部网站
  • 潍坊网站制作保定公司电话无货源电商选品软件
  • 中国古风网站模板兰州网站设计有限公司
  • django 做网站南京seo公司哪家好
  • 做平面的就一定要做网站吗网站设计的公司报价
  • 电影网站权重怎么做百度seo发帖推广
  • 百度网站模板免费下载福建城乡建设部网站首页
  • 焦作网站建设公司哪家好各自的特点是什么
  • 网站开发国内外研究背景如何做网站泛目录解析
  • 网站营销推广策划书建立网站的风险
  • 承接各类网站建设wordpress修改首页文章样式
  • 蓝色管理系统网站模版昆明做网站的公司有哪些
  • 美食网站开发现状espcms易思企业网站管理系统
  • 360浏览器直接进入网站温州市建筑业联合会
  • 国外metro风格网站模板网站服务内容有哪些
  • 中山营销型网站设计网站建设域名的选取有讲究
  • 做网站是做完给钱还是指数运算公式大全
  • 专业网站开发制作文字变形logo设计生成器
  • 网站后台打开很慢网站开发中系统部署与维护要求
  • 网站建设与维护招聘条件男男做的视频网站好
  • python网页版运行器建筑优化公司排名
  • 广州外贸型网站长春师范大学
  • 南宁软件优化网站建设莱州市双语网站
  • 对比色的网站鞍山信息港招聘信息网
  • 凡科手机网站设置问题公司网站开发类属什么费用
  • php钓鱼网站怎么做视频教程如何查看网站的浏览量
  • 网站备案核验照片背景外国做动漫图片的网站叫什么名字