数据蒋堂 •
175 引用 •
108 回帖 •
590 关注
博客
关注
-
过滤是个很基本的运算,就是从一个集合中找出满足某些条件的成员构成的子集。SQL 中有 WHERE 和 HAVING 来实现过滤运算(严格地说,困为 SQL 缺乏离散性,WHERE 的运算结果是 ..
-
我们讨论过的常规聚合运算如 SUM/COUNT 和非常规聚合运算如 maxp/top,都是事先设计好的聚合函数。但如果我们想实现一个以前没有定义过的运算怎么办?比如想做连乘运算,显然这也算是一 ..
-
标准 SQL 中提供了五种最常用的聚合运算:SUM/COUNT/AVG/MIN/MAX。观察这几个运算,我们发现它们都可以看成是一个以集合为参数返回单值的函数,我们就先把这个共同点理解为聚合运 ..
-
我们在讨论有序分组时只研究了待分组集合的成员次序对分组运算可能的影响,但既然要考虑集合的有序性,那么结果集也是个集合,它的成员次序是不是也有业务意义呢? 确实有意义,不过重要程度不如原集的次序 ..
-
我们知道,SQL 延用了数学上的无序集合概念,所以 SQL 的分组并不关注待分组集合中成员的次序。我们前面讨论等值分组和非等值分组的时候,也都没有关注过这个问题,分组规则都是建立在成员取值本身 ..
-
有过多年应用开发经验的同学大都会体验过数据库 IO 比较慢的情况,但到底会慢到什么程度,特别是和其它读写数据的手段相比的差距,可能很多人还没有感性认识。 Java 是普遍采用的应用开发技术,我 ..
-
我们研究过分组运算的实质,即将一个集合按某种规则拆分成若干子集。不过,讨论重点在于还原分组运算的步骤,并没有讨论拆分规则,例子中都是用某些分组键值来定义拆分规则,也就是 SQL 中使用的方法。 ..
-
分组是数据库中的常见运算,但未必所有人都能深刻地理解它。 分组运算的实质是将一个集合按照某种规则拆分成若干个子集,也就是说,返回值应当是一个由集合构成的集合,但人们一般并不太关心构成这个集合的 ..
-
我们讲过硬盘的性能特征,主要是针对硬件和操作系统层面进行分析的,现在我们来考虑应用软件层面的差异。 理论上讲,软件可以穿过操作系统直接读取磁盘,但实在太过于麻烦且丧失兼容性,所以几乎不会实践机 ..
-
拥有集合化特性的程序语言能让我们用很少的语句写出针对集合的复杂运算,其中处于核心地位的是 Lambda 语法设计得是否方便,直接决定了程序语言的描述效率。 我们来从简单到复杂考查集合运算的可能 ..
-
列存是常见的数据存储技术,说到列存常常就意味着高性能,现代分析型数据库基本都会把列存作为标配, 列存的基本原理是减少硬盘的读取量。一个数据表有多个列,但运算可能只会用到其中少数几列,采用列存时 ..
-
编程,一度被认为和驾驶一样是一项现代社会的基本技能,非专业人员也该有所掌握,中小学也在教。但实际上,它的普及程度远比驾驶差,掌握这个技能的人很少,在学校学过的知识,因为工作中用不上也都忘掉了。 ..
-
标题党一下,Python 程序员成千上万,当然有很多人学得会。这里说的“你”,是指职场中的非专业人员。 职场人员一般会用 Excel 处理数据,但也会有很多无助的情况,比如复杂计算、重复计算、 ..
-
我们讨论过代码编写的难和繁的原理问题,现在关注性能问题,运行速度当然是非常重要的事情。 我们知道,软件不能改变硬件的性能,CPU 和硬盘该多快就多快。不过,我们可以设计出低复杂度的算法,也就是 ..
-
[链接]离散性讨论 [链接] [链接] [链接] [链接] [链接] [链接] [链接] [链接] [链接] [链接] [链接] [链接] [链接] 我们讨论了 SQL 对 Java 的优势, ..
-
我们知道内存比硬盘要快得多,大概能快出一两个数量级(当然价钱也贵得多)。不过,硬盘的问题并不只是速度慢。 硬盘的一个基本特征是不适合做频繁小量读取。所谓频繁小量读取,就每次读取的数据量很小,但 ..
-
同样的数据计算任务,用 SQL 写和用 Java 写,后者常常会长出数倍。代码长不仅仅是写起来很繁琐,也不利于理解整体业务逻辑结构,算法过程都湮没在细节中。 为什么 Java 会比 SQL 长 ..
-
我们经常听到大数据产品宣传自己性能好,“万亿秒查”是个常见的说法,大概意思就是上万亿行数据中找出查出满足条件的数据,可以秒级返回。 这是真地吗? 看过“[链接]”那期的同学大概都会觉得不可能。 ..
-
许多大型数据库在运行多年后都会积累出很多的数据表,严重者数以万计,非常臃肿。这些数据表年代久远,有些已经忘记建设原因,也可能已不再有用,但因为很难确认而不敢删除。这给运维工作带来巨大的负担。伴 ..
-
我们知道,SQL 很像英语,简单的 SQL 语句直接可以作为英语读。除了 SQL 外,其它主要程序设计语言都没有这样,语法中就算有英语单词也仅仅是作为某些概念或操作的助记符而已,写出来的是形式 ..
-
一英里不是个很长的距离,一立方英里相对于地球也不会让人觉得是个很大的空间。然后我说,这个空间内能装下全世界所有人,你会不会觉到很惊讶?其实不过这话不是我说的,是美国作家房龙写的。 业内有个著名 ..
-
很多现代应用会把数据计算和处理任务从数据库移出来采用 Java 实现,这样能获得架构上的好处,而且 Java 有完善过程处理能力,应对日益复杂的业务逻辑比 SQL 更得心应手(虽然代码不短)。 ..
-
早期应用通常只会连接一个数据库,计算也都由数据库完成,基本不存在多数据源混合计算的问题。而现代应用的数据源变得很丰富,同一个应用也可能访问多种数据源,各种 SQL 和 NoSQL 数据库、文本 ..
-
客户画像在当前商业分析中很时髦。说白了也简单,就是给客户打上各种标签,再用这些标签定义出不同的客群分类(所谓画像),然后统计各类客群的成员数量(以及变化情况)。 逻辑上看,标签也就是维度,或者 ..
-
json 是个好东西,它可以使用公共的文本形式承载了丰富的结构化数据的信息。现代很多技术都在喜欢使用 json 作为数据传输格式,比如 Elastic Search,Restful,Kafka ..