数据蒋堂 •
175 引用 •
108 回帖 •
590 关注
博客
关注
-
[链接]离散性讨论 [链接] [链接] [链接] [链接] [链接] [链接] [链接] [链接] [链接] [链接] [链接] [链接] [链接] 我们讨论了 SQL 对 Java 的优势, ..
-
就是非常不起眼的帐号去重计数,用 SQL 写就是 COUNT(DISTINCT …)。 帐号去重计数在商业分析中很常见也有重要的业务意义。这里的帐号可能是用户 ID、银行帐户、手机号、车牌号、 ..
-
早期应用通常只会连接一个数据库,计算也都由数据库完成,基本不存在多数据源混合计算的问题。而现代应用的数据源变得很丰富,同一个应用也可能访问多种数据源,各种 SQL 和 NoSQL 数据库、文本 ..
-
年代久远的数据使用频率通常会变低,这时候怎么存储和计算就是个问题。 使用频率低并不等于完全不再使用。如果把这些数据都从数据库中归档出去,再查询统计时又要再次导入数据库,费时费力。经常会发生查询 ..
-
Java 很长时间都没有提供直接的数据集运算语法,写个简单的 SUM 都要很多行,更不要说分组、排序等复杂运算了。完全同样数据处理功能的代码远比 SQL 长,开发效率低下。 从 Java8 开 ..
-
我们讲过硬盘的性能特征,主要是针对硬件和操作系统层面进行分析的,现在我们来考虑应用软件层面的差异。 理论上讲,软件可以穿过操作系统直接读取磁盘,但实在太过于麻烦且丧失兼容性,所以几乎不会实践机 ..
-
Oracle 是普遍使用的数据库,它不是专业的分析型数据库,在数据量较大时常常会计算性能不佳,影响用户体验。现在有不少新的分析型数据库在性能上比 Oracle 更快,甚至可以说远超。那么在 O ..
-
更多地使用 Java 而避免存储过程和复杂 SQL 是当前应用开发的一个潮流,这会在架构上带来优势,但用 Java 实现 SQL 式的运算并不是非常方便,很多任务要从头写起,开发效率其实反而会 ..
-
TP 太撑上 AP,这几乎是业界的通识,而且也有了多年的成功实践,这还有什么可讨论的吗? 上了 AP 库确实能缓存 TP 库的计算压力,而且 AP 库通常计算性能更好,还能给用户带来更优的体验 ..
-
微服务这些年比较时髦,用 Java 取代 SQL 及存储过程开发业务逻辑,确实能获得架构上的优势,细节这里就不展开了,微服务能流行当然有它的道理。 但微服务真地“微”吗? 我们知道,面对同样业 ..
-
没错,就是著名的 JOIN。 JOIN 一直是数据库计算的老大难问题,业界想了很多办法来计算它。如果不做任何优化,那就是两个关联表循环遍历,这是个乘法级的复杂度,数据量稍大一点就受不了。成熟的 ..
-
编程,一度被认为和驾驶一样是一项现代社会的基本技能,非专业人员也该有所掌握,中小学也在教。但实际上,它的普及程度远比驾驶差,掌握这个技能的人很少,在学校学过的知识,因为工作中用不上也都忘掉了。 ..
-
我们讨论过代码编写的难和繁的原理问题,现在关注性能问题,运行速度当然是非常重要的事情。 我们知道,软件不能改变硬件的性能,CPU 和硬盘该多快就多快。不过,我们可以设计出低复杂度的算法,也就是 ..
-
同样的数据计算任务,用 SQL 写和用 Java 写,后者常常会长出数倍。代码长不仅仅是写起来很繁琐,也不利于理解整体业务逻辑结构,算法过程都湮没在细节中。 为什么 Java 会比 SQL 长 ..
-
客户画像在当前商业分析中很时髦。说白了也简单,就是给客户打上各种标签,再用这些标签定义出不同的客群分类(所谓画像),然后统计各类客群的成员数量(以及变化情况)。 逻辑上看,标签也就是维度,或者 ..
-
json 是个好东西,它可以使用公共的文本形式承载了丰富的结构化数据的信息。现代很多技术都在喜欢使用 json 作为数据传输格式,比如 Elastic Search,Restful,Kafka ..
-
我们知道,SQL 很像英语,简单的 SQL 语句直接可以作为英语读。除了 SQL 外,其它主要程序设计语言都没有这样,语法中就算有英语单词也仅仅是作为某些概念或操作的助记符而已,写出来的是形式 ..
-
很多现代应用会把数据计算和处理任务从数据库移出来采用 Java 实现,这样能获得架构上的好处,而且 Java 有完善过程处理能力,应对日益复杂的业务逻辑比 SQL 更得心应手(虽然代码不短)。 ..
-
列存是常见的数据存储技术,说到列存常常就意味着高性能,现代分析型数据库基本都会把列存作为标配, 列存的基本原理是减少硬盘的读取量。一个数据表有多个列,但运算可能只会用到其中少数几列,采用列存时 ..
-
我们继续讨论集合运算中的 Lamba 语法,引入和次序相关的运算能力。 SQL 延用了数学上的无序集合概念,遍历集合时也不关注次序。但计算机只能一步步地执行,循环时总会有个次序,充分利用这个次 ..
-
拥有集合化特性的程序语言能让我们用很少的语句写出针对集合的复杂运算,其中处于核心地位的是 Lambda 语法设计得是否方便,直接决定了程序语言的描述效率。 我们来从简单到复杂考查集合运算的可能 ..
-
Hibernate,Mybatis 以及新兴的 JOOQ 等 ORM 技术能够方便地将数据库表映射成 Java 对象,并提供自动读写能力。ORM 技术使得用 Java 开发数据库应用变得更为高 ..
-
许多大型数据库在运行多年后都会积累出很多的数据表,严重者数以万计,非常臃肿。这些数据表年代久远,有些已经忘记建设原因,也可能已不再有用,但因为很难确认而不敢删除。这给运维工作带来巨大的负担。伴 ..
-
我们知道内存比硬盘要快得多,大概能快出一两个数量级(当然价钱也贵得多)。不过,硬盘的问题并不只是速度慢。 硬盘的一个基本特征是不适合做频繁小量读取。所谓频繁小量读取,就每次读取的数据量很小,但 ..
-
索引是经常用到的技术,但有些程序员对索引的原理了解不深,发现数据查询性能有问题立刻想起建索引,当然经常也没啥效果,反而消耗资源。那么到底什么时候该用索引以及该怎么用?我们来分析索引清理背后的技 ..