数据库测试

news2025/3/1 10:28:43

TPCH 22条SQL语句分析 - xibuhaohao - 博客园

TPCH模型规范、测试说明及22条语句 - zhjh256 - 博客园

TPC-DS 性能比较:TiDB 与 Impala-PingCAP | 平凯星辰

揭秘Oracle TPC-H性能优化:如何提升数据库查询速度,揭秘实战技巧与挑战

引言

TPC-H(Transaction Processing Performance Council H-Scale Performance Benchmark)是一个广泛使用的数据库性能基准测试,用于衡量数据库系统在高并发和大规模数据集上的查询性能。Oracle数据库作为企业级数据库的佼佼者,其性能优化一直是数据库管理员和开发者关注的焦点。本文将深入探讨Oracle TPC-H性能优化,揭示提升数据库查询速度的实战技巧与挑战。

一、TPC-H基准测试简介

TPC-H基准测试模拟了典型的在线事务处理(OLTP)场景,包括订单处理、库存管理和客户服务等多个方面。它通过一系列复杂的SQL查询来测试数据库的性能。在TPC-H基准测试中,查询的性能是衡量数据库系统效率的重要指标。

二、TPC-H性能优化技巧

1. 索引优化

索引是提升查询性能的关键。以下是一些索引优化的技巧:

  • 创建索引:针对查询中频繁使用的列创建索引,例如:
  CREATE INDEX idx_order_date ON orders (order_date);  
  • 监控索引使用情况:定期检查索引的使用情况,确保索引被有效利用。
  SELECT * FROM v$index_usage;  

2. 查询优化

查询优化是提升性能的直接方法。以下是一些查询优化的技巧:

  • 使用执行计划:通过分析执行计划,找出查询性能瓶颈。
  EXPLAIN PLAN FOR SELECT * FROM orders WHERE order_date = '2021-01-01';  
  SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY);  
  • 优化子查询:将子查询转换为连接查询,以提高性能。
  SELECT d.department_name, COUNT(e.employee_id) AS employee_count  
  FROM departments d  
  JOIN employees e ON d.department_id = e.department_id  
  GROUP BY d.department_name;  

3. 物理设计优化

  • 分区表:将大表分区可以提高查询性能。
  CREATE TABLE orders (  
    order_id NUMBER,  
    order_date DATE,  
    ...  
  ) PARTITION BY RANGE (order_date) (  
    PARTITION p1 VALUES LESS THAN ('2021-01-01'),  
    PARTITION p2 VALUES LESS THAN ('2022-01-01'),  
    ...  
  );  
  • 触发器和存储过程:合理使用触发器和存储过程可以提高数据一致性和查询性能。
  CREATE OR REPLACE TRIGGER trig_after_insert_order  
  AFTER INSERT ON orders  
  FOR EACH ROW  
  BEGIN  
    -- 触发器逻辑  
  END;  

三、实战案例

以下是一个实际的TPC-H性能优化案例:

假设在TPC-H基准测试中,查询Q1(找出每个供应商的总订单数)的执行时间过长。通过分析执行计划,我们发现orders表的supplier_id列未创建索引。在创建索引后,查询性能得到了显著提升。

四、挑战与展望

TPC-H性能优化面临以下挑战:

  • 数据量庞大:随着数据量的增长,性能优化变得越来越复杂。

  • 多并发查询:在高并发环境下,优化查询性能是一项挑战。

未来,随着数据库技术的发展,我们将有更多高效的工具和方法来提升TPC-H性能。

结语

Oracle TPC-H性能优化是数据库管理员和开发者必须掌握的技能。通过合理的索引优化、查询优化和物理设计优化,可以有效提升数据库查询速度。在实际项目中,不断总结经验,持续优化,是提升数据库性能的关键。

TiDB TPC-H 性能对比测试报告 - v5.4 MPP 模式对比 Greenplum 6.15.0 以及 Apache Spark 3.1.1

测试概况

本次测试对比了 TiDB v5.4 MPP 模式下和主流分析引擎例如 Greenplum 和 Apache Spark 最新版本在 TPC-H 100 GB 数据下的性能表现。结果显示,TiDB v5.4 MPP 模式下相对这些方案有 2-3 倍的性能提升。

TiDB v5.0 中引入的 TiFlash 组件的 MPP 模式大大幅增强了 TiDB HTAP 形态。本文的测试对象如下:

  • TiDB v5.4 MPP 执行模式下的列式存储
  • Greenplum 6.15.0
  • Apache Spark 3.1.1 + Parquet

测试环境

硬件配置

实例类型实例数
PD1
TiDB1
TiKV3
TiFlash3
  • CPU:Intel(R) Xeon(R) CPU E5-2630 v4 @ 2.20GHz,40 核
  • 内存:189 GB
  • 磁盘:NVMe 3TB * 2

软件版本

服务类型软件版本
TiDB5.4
Greenplum6.15.0
Apache Spark3.1.1

配置参数

TiDB v5.4 配置

v5.4 的 TiDB 集群除以下配置项外均使用默认参数配置。所有 TPC-H 测试表均以 TiFlash 列存进行同步,无额外分区和索引。

在 TiFlash 的 users.toml 配置文件中进行如下配置:

 

[profiles.default] max_memory_usage = 10000000000000

使用 SQL 语句设置以下会话变量:

 

set @@tidb_isolation_read_engines='tiflash'; set @@tidb_allow_mpp=1; set @@tidb_mem_quota_query = 10 << 30;

Greenplum 配置

Greenplum 集群使用额外的一台 Master 节点部署(共四台),每台 Segment Server 部署 8 Segments(每个 NVMe SSD 各 4 个),总共 24 Segments。存储格式为 append-only / 列式存储,分区键为主键。

 

log_statement = all gp_autostats_mode = none statement_mem = 2048MB gp_vmem_protect_limit = 16384

Apache Spark 配置

Apache Spark 测试使用 Apache Parquet 作为存储格式,数据存储在 HDFS 上。HDFS 为三节点,为每个节点指定两块 NVMe SSD 盘作为数据盘。通过 Standalone 方式启动 Spark 集群,使用 NVMe SSD 盘作为 spark.local.dir 本地目录以借助快速盘加速 Shuffle Spill 过程,无额外分区和索引。

 

--driver-memory 20G --total-executor-cores 120 --executor-cores 5 --executor-memory 15G

测试结果

注意

以下测试结果均为 3 次测试的平均值,单位均为秒。

Query IDTiDB v5.4Greenplum 6.15.0Apache Spark 3.1.1 + Parquet
18.0864.130752.64
22.534.7661211.83
34.8415.6289813.39
410.9412.883188.54
512.2723.3544925.23
61.326.0332.21
75.9112.3126625.45
86.7111.8244423.12
944.1922.4014435.2
107.1312.5107112.18
112.182.622110.99
122.887.979066.99
136.8410.1587312.26
141.694.793943.89
153.2910.487859.82
165.044.642626.76
1711.774.6524344.65
1812.8764.8764630.27
194.758.086254.7
208.8915.470168.4
2124.4439.0859434.83
221.237.674764.59

TPC-H

以上性能图中蓝色为 TiDB v5.4,红色为 Greenplum 6.15.0,黄色为 Apache Spark 3.1.1,纵坐标是查询的处理时间。纵坐标数值越低,表示 TPC-H 性能越好。

TiDB TPC-H 性能对比测试报告 - v4.0 对比 v3.0

测试目的

对比 TiDB v4.0 和 v3.0 OLAP 场景下的性能。

因为 TiDB v4.0 中新引入了 TiFlash 组件增强 TiDB HTAP 形态,本文的测试对象如下:

  • v3.0 仅从 TiKV 读取数据。
  • v4.0 仅从 TiKV 读取数据。
  • v4.0 通过智能选择混合读取 TiKV、TiFlash 的数据。

测试环境 (AWS EC2)

硬件配置

服务类型EC2 类型实例数
PDm5.xlarge3
TiDBc5.4xlarge2
TiKV & TiFlashi3.4xlarge3
TPC-Hm5.xlarge1

软件版本

服务类型软件版本
PD3.0、4.0
TiDB3.0、4.0
TiKV3.0、4.0
TiFlash4.0
tiup-bench0.2

配置参数

v3.0

v3.0 的 TiDB 和 TiKV 均为默认参数配置。

变量配置
 

set global tidb_distsql_scan_concurrency = 30; set global tidb_projection_concurrency = 16; set global tidb_hashagg_partial_concurrency = 16; set global tidb_hashagg_final_concurrency = 16; set global tidb_hash_join_concurrency = 16; set global tidb_index_lookup_concurrency = 16; set global tidb_index_lookup_join_concurrency = 16;

v4.0

v4.0 的 TiDB 为默认参数配置。

TiKV 配置
 

readpool.storage.use-unified-pool: false readpool.coprocessor.use-unified-pool: true

PD 配置
 

replication.enable-placement-rules: true

TiFlash 配置
 

logger.level: "info" learner_config.log-level: "info"

变量配置

注意

部分参数为 SESSION 变量。建议所有查询都在当前 SESSION 中执行。

 

set global tidb_allow_batch_cop = 1; set session tidb_opt_distinct_agg_push_down = 1; set global tidb_distsql_scan_concurrency = 30; set global tidb_projection_concurrency = 16; set global tidb_hashagg_partial_concurrency = 16; set global tidb_hashagg_final_concurrency = 16; set global tidb_hash_join_concurrency = 16; set global tidb_index_lookup_concurrency = 16; set global tidb_index_lookup_join_concurrency = 16;

测试方案

硬件准备

为了避免 TiKV 和 TiFlash 争抢磁盘和 I/O 资源,把 EC2 配置的两个 NVMe SSD 盘分别挂载为 /data1 及 /data2,把 TiKV 的部署至 /data1,TiFlash 部署至 /data2

测试过程
  1. 通过 TiUP 部署 TiDB v4.0 和 v3.0。

  2. 通过 TiUP 的 bench 工具导入 TPC-H 10G 数据。

    • 执行以下命令将数据导入 v3.0:

       

      tiup bench tpch prepare \ --host ${tidb_v3_host} --port ${tidb_v3_port} --db tpch_10 \ --sf 10 \ --analyze --tidb_build_stats_concurrency 8 --tidb_distsql_scan_concurrency 30

    • 执行以下命令将数据导入 v4.0:

       

      tiup bench tpch prepare \ --host ${tidb_v4_host} --port ${tidb_v4_port} --db tpch_10 --password ${password} \ --sf 10 \ --tiflash \ --analyze --tidb_build_stats_concurrency 8 --tidb_distsql_scan_concurrency 30

  3. 运行 TPC-H 的查询。

    1. 下载 TPC-H 的 SQL 查询文件:

       

      git clone https://github.com/pingcap/tidb-bench.git && cd tpch/queries

    2. 查询并记录耗时。

      • 对于 TiDB v3.0,使用 MySQL 客户端连接到 TiDB,然后执行查询,记录 v3.0 查询耗时。
      • 对于 TiDB v4.0,使用 MySQL 客户端连接到 TiDB,再根据测试的形态,选择其中一种操作:
        • 设置 set @@session.tidb_isolation_read_engines = 'tikv,tidb'; 后,再执行查询,记录 v4.0 仅从 TiKV 读取数据的查询耗时。
        • 设置 set @@session.tidb_isolation_read_engines = 'tikv,tiflash,tidb'; 后,再执行查询,记录 v4.0 通过智能选择从 TiKV 和 TiFlash 混合读取数据的查询耗时。
  4. 提取整理耗时数据。

测试结果

注意

本测试所执行 SQL 语句对应的表只有主键,没有建立二级索引。因此以下测试结果为无索引结果。

Query IDv3.0v4.0 TiKV Onlyv4.0 TiKV / TiFlash Automatically
17.78s7.45s2.09s
23.15s1.71s1.71s
36.61s4.10s4.05s
42.98s2.56s1.87s
520.35s5.71s8.53s
64.75s2.44s0.39s
77.97s3.72s3.59s
85.89s3.22s8.59s
934.08s11.87s15.41s
104.83s2.75s3.35s
113.98s1.60s1.59s
125.63s3.40s1.03s
135.41s4.56s4.02s
145.19s3.10s0.78s
1510.25s1.82s1.26s
162.46s1.51s1.58s
1723.76s12.38s8.52s
1817.14s16.38s16.06s
195.70s4.59s3.20s
204.98s1.89s1.29s
2111.12s6.23s6.26s
224.49s3.05s2.31s

TPC-H

以上性能图中蓝色为 v3.0,红色为 v4.0(仅从 TiKV 读),黄色为 v4.0(从 TiKV、TiFlash 智能选取),纵坐标是查询的处理时间。纵坐标越低,表示性能越好。

  • v4.0(仅从 TiKV 读取数据),即 TiDB 仅会从 TiKV 中读取数据。将该结果与 v3.0 的结果对比可得知,TiDB、TiKV 升级至 4.0 版本后,TPC-H 性能得到的提升幅度。
  • v4.0(从 TiKV、TiFlash 智能选取),即 TiDB 优化器会自动根据代价估算选择是否使用 TiFlash 副本。将该结果与 v3.0 的结果对比可得知,在 v4.0 完整的 HTAP 形态下,TPC-H 性能得到的提升幅度。

【数据库】TiDB 5.3 TPCH 100G测试及思考

一、环境
tpc-H 100G数据 2.8版本
22个场景sql:
<https://github.com/pingcap/tidb-bench/tree/master/tpch/queries>
官方:

节点数量:3
CPU:Intel(R) Xeon(R) CPU E5-2630 v4 @ 2.20GHz,40 核
内存:189 GB
磁盘:NVMe 3TB * 2
华为云:

kc1.4xlarge.4
节点数量:6
CPU:16vCPUs(kunpeng 920)
内存:64 GB
磁盘:极速SSD(fio bs=1M job=10 w=8783MiB/s,8782 IOPS)
布局:tikv和tiflash同一主机*3,tidb和pd在同一主机*3,绑2node
普通SSD:

TaiShan
节点数量:6
CPU:128 CPU(kunpeng 920)
内存:512 GB
磁盘:普通SSD(fio bs=16k w=250MB/s)
布局:
1、每台主机4块数据SSD,共同加到一个tiflash中
2、24*TiDB,3*PD,24Tikv,6Tiflash,每个server端单独绑一个node(一个node 32CPU)
二、参数设置
tiup cluster edit-config t1
tiflash:
   profiles.default.max_memory_usage = 10000000000000
 
set global tidb_allow_mpp=1;
set @@tidb_isolation_read_engines='tiflash';
set @@tidb_mem_quota_query = 10 << 30;
 
因为tidb_isolation_read_engines只能session级别,通过mysql客户端登陆调用本地脚本方式执行
mysql -h127.0.0.1 -uroot -P4000 -D tpch <<!
\\. 1.sql
!
执行多次,直到sql执行时间趋于稳定
三、测试结果
官方数据    华为云3副本Tiflash    华为云3副本tikv+tiflash    普通SSD 6副本tikv+tiflash
Q1    8.08    6.6        1.68
Q2    2.53    2.48        3.09
Q3    4.84    4.649        15.76
Q4    10.94    5.589    19.1    8.27
Q5    12.27    11.02        6.97
Q6    1.32    1        0.55
Q7    5.91    4.0666        7.59
Q8    6.71    7.1        14.91
Q9    44.19    30.334        12.87
Q10    7.13    4.4        41.04
Q11    2.18    1.771        3.03
Q12    2.88    2.885        2.47
Q13    6.84    4.9        72.62
Q14    1.69    1.5        1.51
Q15    3.29    2.5-2.7    2.5-2.9    13.75
Q16    5.04    1.1        2.07
Q17    11.7    7.9        24.89
Q18    12.87    11.1        14.17
Q19    4.75    3.05        1.38
Q20    8.89    2.4        24.62
Q21    24.44    12.4        15.47
Q22    1.23    1.167        1.4
四、结果说明及一些猜想
Q4:
select
    o_orderpriority,count(*) as order_count
from
    orders
where
    o_orderdate >= '1995-01-01'
    and o_orderdate < date_add('1995-01-01', interval '3' month)
    and exists (
        select * from lineitem
        where 
      l_orderkey = o_orderkey 
      and l_commitdate < l_receiptdate
    )
group by o_orderpriority
order by o_orderpriority;
tiflash:5.589s
tikv+tiflash+tidb(默认配置):19.1s
explain analyze执行计划,默认配置下表lineitem走了cache:

Selection_24(Probe)          | 3.98         | 14185840  | cop[tikv]    |                                             |time:5m56.6s, **loops:16883**, 
cop_task: {num: 3827, max: 697.5ms, min: 585.8µs, avg: 133ms, p95: 340ms, max_proc_keys: 17867, p95_proc_keys: 15901, tot_proc: 7m13.6s, tot_wait: 1m6.1s, rpc_num: 3827, rpc_time: 8m29s, copr_cache_hit_ratio: 0.24}, tikv_task:{proc max:530ms, min:0s, p80:180ms, p95:280ms, iters:39261, tasks:3827}, scan_detail: {total_process_keys: 21217578, total_process_keys_size: 4216268171, total_keys: 25622316, rocksdb: {delete_skipped_count: 0, key_skipped_count: 20513898, 
block: {**cache_hit_count: 32099284, read_count: 1750183, read_byte: 29.1 GB**}}}   
| lt(tpch.lineitem.l_commitdate, tpch.lineitem.l_receiptdate)
 

在强制tiflash下,优化器重组了sql,两张表直接做hashjoin

HashJoin_42 | 4471364.76 | batchCop[tiflash] || semi join, equal:[eq(tpch.orders.o_orderkey, tpch.lineitem.l_orderkey)]

一些猜想:

1、TiDB优化器中cache hit权重更高?
2、TiDB优化器之后是否会像Oracle加入硬件性能参数计算代价?(参考aux_stats$)
Q9:
tiflash和tikv+tiflash差距不大;表supplier在tikv中走的点查,非常快
耗时上,默认配置总时间更短
其他:
AP还是看存储,多盘在某些场景下貌似不能弥补性能上的差距
————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
                        
原文链接:https://blog.csdn.net/xyq172291/article/details/122281719

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2307850.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

< 自用文儿 > Gobuster 暴力扫描工具与 SecLists 安全测试词表集合

Ethice 道德问题 GFW 的保护下&#xff0c;很多的设备操作系统是停留在更老的版本&#xff0c;应用软件也是&#xff0c;因此很多的漏洞没有被修复。通讯没有使用加密&#xff0c;例如网页没有使用 HTTPS 网站很多。几乎是半裸的在网络上等着被食。 不做恶是下限。 环境&…

关于网页地图的坐标系

EPSG:4326地理坐标系 和 EPSG:3857Web 墨卡托投影 EPSG:4326 定义&#xff1a;EPSG:4326 是基于 WGS84 椭球的地理坐标系&#xff0c;使用经度&#xff08;Longitude&#xff09;和纬度&#xff08;Latitude&#xff09;表示地球上的位置。特点&#xff1a; 经度范围为 -180 …

华为云之使用鲲鹏弹性云服务器部署Node.js环境【玩转华为云】

华为云之使用鲲鹏弹性云服务器部署Node.js环境【玩转华为云】 一、本次实践介绍1.1 实践环境简介1.3 本次实践完成目标 二、 相关服务介绍2.1 华为云ECS云服务器介绍2.2 Node.js介绍 三、环境准备工作3.1 预置实验环境3.2 查看预置环境信息 四、登录华为云4.1 登录华为云4.2 查…

C语言整体梳理-基础篇-结构体

结构体详解 1.1结构体是什么&#xff1f; 结构体是一些值的集合&#xff0c;这些值成为成员变量&#xff0c;结构体的每个成员可以是不同类型的变量。 数组是相同类型的元素组成的集合&#xff0c;结构体可以是不同类型元素组成的集合。 1.2结构体的声明 1.2.1常规声明 s…

【 实战案例篇三】【某金融信息系统项目管理案例分析】

大家好,今天咱们来聊聊金融行业的信息系统项目管理。这个话题听起来可能有点专业,但别担心,我会尽量用大白话给大家讲清楚。金融行业的信息系统项目管理,说白了就是如何高效地管理那些复杂的IT项目,确保它们按时、按预算、按质量完成。咱们今天不仅会聊到一些理论,还会通…

会话与会话管理:Cookie与Session的深度解析

一、什么是会话&#xff1f; 二、Cookie&#xff1a;客户端存储技术 1. Cookie的工作原理 2、在后端设置cookie 3、在前端设置cookie 三、浏览器开启了cookie禁用怎么办&#xff1f; 一、什么是会话&#xff1f; 会话&#xff08;Session&#xff09;是指一个用户与服务器之间…

MAVlink链路环境搭建并解决“ModuleNotFoundError: No module named ‘xxx’”问题

MAVlink链路常用于云台相机与飞控以及地面站之间的数据传输&#xff0c;搭建MAVlink链路环境需要安装Python、Future、MAVLink、pymavlink四样工具用于生成mavlink代码。 Python 直接从官网下载默认安装即可https://www.python.org/downloads/ 在电脑命令行进行安装验证&#x…

java后端开发day23--面向对象进阶(四)--抽象类、接口、内部类

&#xff08;以下内容全部来自上述课程&#xff09; 1.抽象类 父类定义抽象方法后&#xff0c;子类的方法就必须重写&#xff0c;抽象方法在的类就是抽象类。 1.定义 抽象方法 将共性的行为&#xff08;方法&#xff09;抽取到父类之后。由于每一个子类执行的内容是不一样…

Go - 泛型的使用

泛型的语法 泛型为Go语言添加了三个新的重要特性: 函数和类型的类型参数。将接口类型定义为类型集&#xff0c;包括没有方法的类型。类型推断&#xff0c;它允许在调用函数时在许多情况下省略类型参数。 类型参数 类型参数的使用 除了函数中支持类型参数列表外&#xff0c…

蓝桥杯刷题-dp-线性dp(守望者的逃离,摆花,线段)

[NOIP 2007 普及组] 守望者的逃离 题目描述 恶魔猎手尤迪安野心勃勃&#xff0c;他背叛了暗夜精灵&#xff0c;率领深藏在海底的娜迦族企图叛变。 守望者在与尤迪安的交锋中遭遇了围杀&#xff0c;被困在一个荒芜的大岛上。 为了杀死守望者&#xff0c;尤迪安开始对这个荒岛…

内容中台的企业CMS架构是什么?

企业CMS模块化架构 现代企业内容管理系统的核心在于模块化架构设计&#xff0c;通过解耦内容生产、存储、发布等环节构建灵活的技术栈。动态/静态发布引擎整合技术使系统既能处理实时更新的产品文档&#xff0c;也能生成高并发的营销落地页&#xff0c;配合版本控制机制确保内…

算法题(81):询问学号

审题&#xff1a; 需要我们根据给出的n值确定录入数据个数&#xff0c;然后根据给出的数据存储学号。再根据m值确定需要输出的学号个数&#xff0c;然后根据数组内容输出学号 思路: 我们可以利用数组进行数据顺序存储&#xff0c;以及随机读取完成本题 由于学号最大为1e9&#…

React antd的datePicker自定义,封装成组件

一、antd的datePicker自定义 需求&#xff1a;用户需要为日期选择器的每个日期单元格添加一个Tooltip&#xff0c;当鼠标悬停时显示日期、可兑换流量余额和本公会可兑流量。这些数据需要从接口获取。我需要结合之前的代码&#xff0c;确保Tooltip正确显示&#xff0c;并且数据…

C++ AVL树详解(含模拟实现)

目录 AVL树的概念 AVL树节点的定义 AVL树的插入 AVL树的旋转&#xff08;难点&#xff09; AVL树的验证 AVL树的删除(本文不做具体的模拟实现) AVL树的性能 AVL树的模拟实现 AVL树的概念 二叉搜索树虽可以缩短查找的效率&#xff0c;但如果数据有序或接近有序二叉搜索…

Spring Boot 3.x 系列【3】Spring Initializr快速创建Spring Boot项目

有道无术&#xff0c;术尚可求&#xff0c;有术无道&#xff0c;止于术。 本系列Spring Boot版本3.0.3 源码地址&#xff1a;https://gitee.com/pearl-organization/study-spring-boot3 文章目录 前言安装JDK 17创建Spring Boot 项目 方式1&#xff1a;网页在线生成方式2&#…

Elasticsearch:过滤 HNSW 搜索,快速模式

作者&#xff1a;来自 Elastic Benjamin Trent 通过我们的 ACORN-1 算法实现&#xff0c;探索我们对 Apache Lucene 中的 HNSW 向量搜索所做的改进。 多年来&#xff0c;Apache Lucene 和 Elasticsearch 一直支持使用 kNN 查询的过滤搜索&#xff0c;允许用户检索符合指定元数据…

【AI测试学习】AnythingLLM+Ollama+DeepSeek部署私人知识库

1.搭建DeepSeek大语言模型 1.1Ollama大预言模型部署 Ollama简化了大型语言模型的运行,让每个人都能在本地轻松体验AI的强大,打开浏览器-下载Ollama-输入命令-搞定,这是本地部署大语言模型的全新方式。 这里我们借助Ollama大预言模型部署工具进行搭建 官网如下:Ollama …

通义灵码插件安装入门教学 - IDEA(安装篇)

在开发过程中&#xff0c;使用合适的工具和插件可以极大地提高我们的工作效率。今天&#xff0c;我们将详细介绍如何在 IntelliJ IDEA 中安装并配置通义灵码插件&#xff0c;这是一款旨在提升开发者效率的实用工具。无论你是新手还是有经验的开发者&#xff0c;本文都将为你提供…

ES、OAS、ERP、电子政务、企业信息化(高软35)

系列文章目录 ES、OAS、ERP、电子政务、企业信息化 文章目录 系列文章目录前言一、专家系统&#xff08;ES&#xff09;二、办公自动化系统&#xff08;OAS&#xff09;三、企业资源规划&#xff08;ERP&#xff09;四、典型信息系统架构模型1.政府信息化和电子政务2.企业信息…

python-leetcode-删除并获得点数

740. 删除并获得点数 - 力扣&#xff08;LeetCode&#xff09; 解法 1&#xff1a;动态规划&#xff08;O(n) 时间&#xff0c;O(n) 空间&#xff09; class Solution:def deleteAndEarn(self, nums: List[int]) -> int:if not nums:return 0# 统计每个数的贡献points Cou…