Java8引入的StreamAPI提供了一种新的数据处理方式,它以声明式、函数式的编程模型,极大地简化了对集合、数组或其他支持数据源的操作。Stream可以被看作是一系列元素的流水线。允许你高效地对大量数据执行复杂的过滤、映射、排序、聚合等操作,而无需显式地使用循环或者临时变量。StreamAPI的设计理念主要包括两个方面:链式调用和惰性求值。链式调用允许我们将多个操作连接在一起,形成一个流水线,而惰性求值意味着只有在真正需要结果的时候才执行计算,从而避免了不必要的计算开销。 接下来我们就来盘点一下日常开发中常用的一些StreamAPI。 创建Stream 集合创建 List<Str...

  J6X4jGS7eKRb   2024年02月19日   16   0   0 Java

近期在Review项目代码时,发现同事们在查询MySQL行数时存在多样的方式,有的使用COUNT(1),有的用COUNT(id),还有人选择了COUNT()。这混杂的选择引发了我的思考。当然这三种count的方式也是众说纷纭,其中最大的分歧点就是COUNT()和COUNT(1)查询性能上,有人觉得COUNT()需要转换为COUNT(1),所以COUNT(1)得速度更快。究竟这三种计数方式之间有何区别,它们的背后原理是怎样的呢? COUNT()含义 在《高性能Mysql》一书第236页中是这么解释COUNT的作用的: COUNT()是一个特殊的函数,有两种非常不同的作用:它可以统计某个列值的数...

  J6X4jGS7eKRb   2024年02月19日   49   0   0 MySQL

背景 假如有一张千万级的订单表,这张表没有采用分区分表,也没有使用ES等技术,分页查询进行到一定深度分页之后(比如1000万行后)查询比较缓慢,我们该如何进行优化? 数据准备 订单表结构如下: CREATETABLE`t_order`( `id`BIGINT(20)UNSIGNEDNOTNULLAUTO_INCREMENTCOMMENT'自增主键', `order_no`VARCHAR(16)NOTNULLDEFAULT''COMMENT'订单编号', `customer_no`VARCHAR(16)NOTNULLDEFAULT''COMMENT'客户编号', `order_status`TI...

  J6X4jGS7eKRb   2024年02月19日   190   0   0 MySQL
关注 更多

空空如也 ~ ~

粉丝 更多

空空如也 ~ ~