V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  zmal  ›  全部回复第 3 页 / 共 8 页
回复总数  147
1  2  3  4  5  6  7  8  
这么多点击没人回答,估计是懒得回答吧,有点基础···
搜索下什么是“回表”。有 idx (`data_type`, `is_deleted` )时,where is_deleted = 0 AND data_type != 1 的 count(*)不需要回表,只通过索引就能完成统计。
区分度低的索引查询慢说的是有回表的情况。
double 类型的 IEEE 754 标准,十进制可以精确表示的数在二进制下可能无法在有限位数内精确表示。
你在 chrome 控制台打印下 0.1 + 0.2 就知道了。
@JasonLaw
??? treeMap 的 key 是 int 值的年份,总共才 5 个数,和时间集合的长度无关。
@JasonLaw
private int 返回入参时间距今几年(String time);
Map<Integer, List<String>> yearMap = list.stream().collect(Collectors.groupingBy(this::返回入参时间距今几年, TreeMap::new, Collectors.toList()));

treeMap 只是用来把年份做个排序,遍历的时候方便。不用也可以。
我明白你的意思了,你是觉得你的一坨 if else 代码需要比较 6 次有多余耗时?其实优化成 除 12 再分组就可以了。
而且计算时间复杂度时常数的部分可以忽略。而且大于小于这种计算在这个场景里的时间消耗可以忽略不计。
一次遍历的时间复杂度是 N 。
排序的时间复杂度是 N*logN ,排序再二分还得*logN ,你咋想的大兄弟。
写个返回 time 距今几个 12 月的函数,stream 流用该函数分组,再用 treemap 搜集。
2022-08-18 23:17:44 +08:00
回复了 garyxi24 创建的主题 Java 关于设置一个定时任务还是多个定时任务问题
不知道为嘛 V2EX 有一个风气,很小的需求非劝人上 MQ 上 ES 之类。

这点数据量用哪个方案区别不大。如果嫌扫表太频繁,1 小时扫一次,把未来 1 小时需要执行的任务加载到定时 job 。甚至可以把所有数据放缓存,变成纯内存操作。如果主表有写入,异步线程更新到缓存。
2022-08-15 11:48:21 +08:00
回复了 NoKey 创建的主题 程序员 请教:数据库表达类型,用字符串还是数字
mysql 的 emun 蛮垃的,千万别用。
mysql 的话正常来说用 tinyint 就可以了。用什么类型更多是业务方面的考量,性能差距不大。
2022-08-14 16:30:47 +08:00
回复了 ershierdu 创建的主题 程序员 请教一个后端缓存一致性的问题
1L 在理。强一致性在这种场景下是非必要的,把 TTL 改成 1s 足够满足需求。
盲猜是==
2022-08-11 11:53:18 +08:00
回复了 dxatgp02 创建的主题 Java Java 对象里为什么要用 get set?
op 好奇的可能是为什么纯数据实体也要用 getter/setter ,这要从 Java 的一切皆对象说起了,涉及到当时的语言设计思想,略过不表。

本质上是因为在 Java 中没有结构体这种纯数据实体结构,jdk17 的 record 也只是对象的语法糖。结构体可能在 jdk18 或 19 加入。
op 吐槽的其实都是 js 的问题。
js 最开始只是想做个脚本语言,弱类型写法多变没啥不好。结果前端发展过于迅猛,很快面临了工程化问题。js 的各种弱点暴露的比较明显。

你吐槽的东西大部分能用 js 类型补丁语言:ts 来解决。ts 写起来挺爽的。
对你说的 ygc 变慢是 intern()引起的说法存疑。
当 stringtable 里的字符串被复用的时候就节省时间了呗,intern() 不就是做这个的嘛。
技术不是银弹,和 web2 没啥关系。
2022-08-05 11:49:28 +08:00
回复了 jeodeng 创建的主题 程序员 请教一下,前端真的会有算法诉求吗?
需要。就比如一个目录树,新手能写个 N 次方算法出来。

如果写小程序,或者老旧 windows 平台(医院自助服务机)这种对资源敏感的客户端,即使是 n^2 和 n*logn 都会体现出明显差距。
2022-08-03 18:09:22 +08:00
回复了 cpalead 创建的主题 Java Java switch 为什么比 for 循环快?
反编译后的字节码很清晰了:编译优化成查表后把枚举类进行了标量替换,tableswitch 里的数字应该是直接放在方法栈里,避免了去堆里访问对象,所以快了很多。
2022-08-02 11:21:33 +08:00
回复了 coderstory 创建的主题 Java Java 8 的 stream 常规操作导致线程卡死
线程卡死本身和 stream 没啥关系。
但这个代码写的实在是太辣了。stream 不是让这么用的。
2022-07-28 15:20:07 +08:00
回复了 hahaFck 创建的主题 程序员 Java 关于数据库 Entity 如何设计
当你在 3 张表以上的 join 加一堆 where...on 时,已经是在 SQL 里写业务了。
联查最大的问题是制约了数据库设计,一般认为 mysql 单表几千万是上限,超过该规模考虑分表。联查的索引不易设计,很容易在业务规模还未扩大时就整出慢 SQL 。
所以三大范式在实际业务中很少遵守,往往是弱耦合 + 宽表的设计思路。数据规模再扩大就上列式存储,不会尝试在关系型数据库死磕。

当然一切都不是绝对的,如果你的 User 表几千条,Department 几十条,Organization 几十条,想怎么 join 都行。但还是建议在代码层解决问题,除非涉及到性能问题。
1  2  3  4  5  6  7  8  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5373 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 28ms · UTC 08:11 · PVG 16:11 · LAX 00:11 · JFK 03:11
Developed with CodeLauncher
♥ Do have faith in what you're doing.