- 博客(22)
- 收藏
- 关注
原创 【AQL】WINDOW 操作
由于val为0,第一行的值范围为[-10,5],因此第一行和第二行的值加起来为5,平均值为2.5。最后一行的值范围是[20,35],因为val是30,这意味着最后四行的总和为100,平均值为25(该范围包括在内,即val落在值为20的范围内)。如果使用这样的持续时间,则当前文档的属性值必须是一个数字,并被视为以毫秒为单位的数字时间戳。对于第一行,这仅仅是10,对于第二行,它是10+0,对于第三行,10+0+9,依此类推。偏移量计算是通过添加或减去在以下和前面的属性中指定的数字偏移量来执行的。
2024-04-02 20:51:39 974
原创 【AQL】COLLECT 操作
请注意,这会考虑在COLLECT语句之前定义的所有变量,但不包括顶层(FOR循环外部)定义的变量,除非COLLECT语句本身就在顶层,那样的话所有变量都会被考虑进去。在ArangoDB中,并未明确提到SORT null这样的语法,但在某些数据库中类似的概念可用于指导优化器做出更高效的执行计划。要确切知道查询中实际使用的COLLECT变体,可以通过查看查询的执行计划来确定,特别是检查CollectNode节点的注释部分,该注释通常会显示所采用的具体收集策略及其相关属性。这些变量通常包含了分组或聚合的结果。
2024-03-31 21:38:50 1096 1
原创 【AQL】LET操作
在上面的例子中,使用LET语句计算推荐数量的因子,从而避免在RETURN语句中计算两次值。LET语句通常用于声明复杂的计算和避免重复计算相同的值在多个查询的部分。LET的另一个用例是在子查询中声明一个复杂的计算,使整个查询更具可读性。变量被引入到LET语句所在的范围内。当变量被赋值后,你不能改变它的值。你可以使用LET操作将任意值赋给一个变量。表达式可以是简单表达式或子查询。
2024-03-19 20:53:40 267
原创 【AQL】LIMIT操作
但是,还要考虑如果你多次运行查询,并且使用不同的 LIMIT 偏移量进行分页,如果排序顺序未定义,则可能会错过结果或得到重复的结果。在以下示例中,LIMIT操作并不影响写入操作(INSERT,UPDATE,REPLACE,REMOVE,UPSERT)本身,而仅仅限制了这些操作返回结果的数量。如果没有这样的属性,你仍然可以通过使用_id系统属性来实现稳定的排序,因为它在每个文档中都是唯一的。特别是在FILTER操作之前使用LIMIT,可能会对查询结果产生显著的影响,因为查询中的操作是按照书写的顺序执行的。
2024-03-15 21:57:27 331 1
原创 【AQL】SORT操作
如果优化规则处于活动状态,则第二个SORT将生效,因为它涵盖了相同的friend.age属性,并且在出现平局的情况下还会按另一个属性进行排序,使其更加准确。但是,如果第二个SORT表达式中的属性顺序相反,如SORT friend.id, friend.age,则最后一个SORT将生效。在优化过程中,AQL 优化器会优化常量 SORT 表达式,但如果优化器不需要考虑任何特定的排序顺序,则明确指定它们可能会实现进一步的优化。当遍历一个集合时,除非使用SORT操作显式定义排序顺序,否则文档的顺序是不确定的。
2024-03-11 20:54:21 369
原创 【AQL】FILTER操作
到达第二个FILTER块的文档不超过5个,并且并非所有文档都符合性别标准,即使集合中有5个以上的活跃女性用户。如果使用多个FILTER语句,它们的结果将通过逻辑AND组合,这意味着所有过滤条件都必须为true,才能包含元素。如果条件结果为false,当前元素将被跳过,因此不会进一步处理,也不会成为结果的一部分。在上例中,users中的所有元素active属性值为true并且age属性值小于39才会被包含在结果中,其他元素将被跳过。请注意,FILTER语句的位置可能会影响查询的结果。
2024-02-24 23:45:59 341
原创 【AQL】RETURN操作
如果DISTINCT应用于一个本身是数组或子查询的表达式上,那么DISTINCT操作不会使得每个数组或子查询结果中的值变得唯一,而是确保整个结果集中包含的是不同的数组或子查询结果。在上述情况下,DISTINCT将使子查询结果唯一,因此每个子查询将返回一个唯一的值数组([1,2,3,4])。在一个数据访问查询中,RETURN操作时必须的,否则这次查询的结果是未定义的。在这种情况下,如果希望得到一个单一对象,该对象以用户ID为键、年龄为值的映射关系,那么需要将每个用户的查询结果合并成一个对象。
2024-02-24 14:11:04 879
原创 【AQL】FOR 操作
解释:在索引查找过程中,虽然可以快速定位到相关文档,但如果需要返回的结果占整个集合的很大比例或者几乎全部时,数据库系统可能需要额外加载主键值以获取完整文档信息,并且多次磁盘I/O操作会增加开销。如果启用了强制索引提示(forceIndexHint),并且所有指定的索引都不适用,则查询会失败,因为在这种情况下,系统被要求必须使用指定的索引进行查询优化,而无法找到合适的索引会导致操作无法执行。在每次内部循环迭代时,都会使用当前用户的值(存储在u中)和当前地点的值(存储在l中),进行进一步的处理或计算。
2024-02-05 22:08:08 931 1
原创 【源码 JDK 1.8】List的源码解读
List的依赖关系简单版,没有表明实现,因为目前只关注List的方法和源码,List的不同实现有 再做不同的解析fill:#333;color:#333;color:#333;fill:none;
2024-01-21 18:32:24 958 1
原创 【Java】Optional的使用
为了解决空指针的一些问题,特别是方法的返回中,可能存在返回有null值的时候可以使用来处理变量;基于JDK81.2 将value对象包装成Optional,此时value不能为null否则会报错1.3 对于可能为null的对象,包装是要使用’ofNullable’方法2.获取Optional对象的值2.1判断Optional是否为空,这是一个不常用的做法。2.2获取Optional中的值,这是一个不常用的做法。一般在执行get方法之前需要手动执行isPresent()方法,idea会警告
2023-11-26 20:51:31 122 1
原创 【算法】快速排序
因为分区点的选取会导致快排的不稳定,原始版本中每次从分组的右边界选择分区点,如果数组已经有序,分区点会导致分区不均衡,从而不能发挥快排的优势。在随机选取的情况下,分区点的位置是随机的,使得快速排序的每次划分都有一定的随机性,在最坏情况下的时间复杂度和空间复杂度都得到了保证。它的基本思想是通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分关键字小,然后再对这两部分记录分别进行快速排序,以达到整个序列有序的目的。每次排序筛选掉等于分区节点的部分,减少后续递归的数量。
2023-11-14 19:55:02 47 1
原创 【算法】归并排序(小和问题,逆序对问题)
归并排序主要由两个步骤组成:划分和合并,每次都划分1/2,需要logn次划分;在合并的过程中,将两个有序的子数组合并成一整个有序的数组所,合并需要遍历所有元素,需要n次操作。逆序对问题是指在一个数组中,如果ia[j],则称(a[i], a[j])为一个逆序对。问题:求一个数组中每个元素左边比它小的元素的和的总和。空间复杂度为O(n):用于存储合并时的临时数组长度。时间复杂度为O(nlogn):划分*合并操作。
2023-07-16 19:23:04 195 1
原创 【算法】简单排序(选择,冒泡,插入)
简单排序是指基于比较的排序算法,包括冒泡排序、选择排序和插入排序。这些算法通常容易理解和实现,但在实际应用中,它们的效率通常比高级排序算法慢。
2023-07-12 19:13:50 183 1
原创 【算法】时间复杂度
在表达式中,只要高阶项,不要低阶项,也不要高阶项的系数,剩下的部分如果为f(N),那么时间复杂度为O(f(N))评价一个算法流程的好坏,先看时间复杂度的指标,在分析不同数据样本下的实际运行时间,也就是“常数项时间”时间复杂度为一个算法流程中,常数操作数量的一个指标。常用O(读作big O)来表示。操作和数据样本的数据量没有关系,每次都是固定时间内完成的操作叫常数操作。先对一个算法流程熟悉,总结出 常数操作的数量表达式。
2023-07-02 15:02:10 180 1
原创 POI的XSSF与SXSSF总结
POI的XSSF与SXSSF总结前言可能出现的内存溢出(OutOfMemoryError)功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入前言在项目中使用到 poi 做 Excel 的导入导出,记录一下使用过程中遇到的问题。可
2020-06-08 16:21:17 2993
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人