数据查询优化过滤处理之HashMapCopy(一)

数据查询优化

前言:我这时只是一个码龄3月学生,我现在的心智和见识能想到的就这点,所以如果这个对于你来说并没用可以不看,只是我的一个想法而已

最近自己捣鼓一个ssm小作业,里面有一个功能处理是:
B表外键关联A表,再web端会有一个表格显示B表的数据,其中包括:A_id,但是在web端显示A_id不符合需求;我们应当显示A_name;直接思维是拿A_id去A表中查询,拿到name显示,哪前端如果显示10w条数据,就会查询10w次,对A表进行10w次扫描。。。
对于此我有俩个解决方案:
一:在B表数据设计的时候,不考虑数据库设计三范式,直接设计B表格式为:

      `create table B_table(
      
-> id int(11) not null auto_increment,
-> data varchar(200),
-> A_id int(11),
-> A_name varchar(200),
-> primary key(id)
-> );`

这样设计以后,在后台设置一个Admin对象,用来存储用户登录时的Admin对象,Admin对应A表
当在web页面进行对B表数据添加时,可以将这个Admin对象中的id和name取出来存储在B的表格中,在web端进行显示A_name就可以了,
这样可以减少了通过A_id去A表查询相应的name,要知道,当A表数据量达到很庞大时,这时的查询操作会拖累性能;这是一个很普遍的解决方法,也是最轻松的,

但是,我当时小作业已经敲到一半了,再去动数据表结构,需要改动有点多,就想了另一个解决方案:
从数据库中把数据迁移到内存中来,再项目启动前,定义初始化方法,在这里插入图片描述
(不喜欢csdn博客的代码展示,喜欢自己idea主题显示,所以以后的代码都用图显示;)

但是其实这样还是不行,当Admin对象用户量达到很庞大时,这个map会占用很多空间,所以sun定义的map我们不能用,可以自己造一个HashMapCopy啊!

要造HashMap就得明白其实现原理,所以要去翻翻源代码

前言结束

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值