V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  yjhatfdu2  ›  全部回复第 3 页 / 共 7 页
回复总数  128
1  2  3  4  5  6  7  
2024-05-22 17:21:57 +08:00
回复了 isxzlhhh 创建的主题 数据库 mysql 字段频繁修改怎么优化
两张表,写完就切另一张表吧
2024-05-22 17:12:21 +08:00
回复了 isxzlhhh 创建的主题 数据库 mysql 字段频繁修改怎么优化
为啥不用 innodb 呢? innodb 应该是 mvcc ,读写可以不冲突
2024-05-22 16:42:48 +08:00
回复了 alexcding 创建的主题 Apple 微软发布 ARM 版本的 Surface Pro 系列
X Elite 当年吹的那么牛逼,原来单核也就 M2 还差点的水平,到现在还没开卖,真是笑死个人
2024-05-16 19:45:21 +08:00
回复了 freewind 创建的主题 数据库 请教多标签查询怎么做效率高?
@wxf666 你算的很对,表大概 20G 多一点,但是索引不是这么存的,你可以理解为反向索引存了 tag 和这个 tag 在哪些行中出现,这里面我怀疑是用 bitmap+压缩来实现的,有兴趣可以看下 pg 的 gin 相关的代码,所以实际上索引体积只有 9G 左右
2024-05-16 16:47:14 +08:00
回复了 freewind 创建的主题 数据库 请教多标签查询怎么做效率高?
@freewind 你这几千条标签递归查估计也就 1ms 之内的事情
2024-05-16 16:46:46 +08:00
回复了 freewind 创建的主题 数据库 请教多标签查询怎么做效率高?
@wxf666 这个索引占用 9G 左右,pg 的 GIN 是通用反向索引,并不是直接按照这样展开存的,原理类似 es 的反向索引
2024-05-16 11:34:15 +08:00
回复了 freewind 创建的主题 数据库 请教多标签查询怎么做效率高?
@freewind 可以这样,也可以像#7 说的一样,每次用递归 CTE 把所有子层级标签查出来作为条件,这样标签层级可以更新,存储容量也可以小点,你们标签少可以考虑用更小的 int 做标签,也能省
2024-05-16 11:18:05 +08:00
回复了 wanniwa 创建的主题 PostgreSQL Java 有没有针对 PostgreSQL 好用一点的 ORM
一般 ORM 都有 raw sql 的模式吧
2024-05-16 11:15:49 +08:00
回复了 freewind 创建的主题 数据库 请教多标签查询怎么做效率高?
实测来了,
创建测试表,并插入 1 亿条测试数据,每一条包含 50 个随机标签,每个标签有 4000 种可能
create table tags_test(id serial primary key,tags array[int]);
create function random_array() returns int[] as $$ select array_agg((4000*random())::int) from generate_series(1,50)) $$;
insert into tags_test(tags) select random_array() from generate_series(1,100000000);
创建 GIN 索引
//最好临时增加 maintenance_work_mem ,会加快索引构建
//set maintenance_work_mem to 1GB;
create index ON tags_test using gin(tags);
简单查个包含几个 tags 的数据
postgres=# select count(*) from tags_test where tags @>array[1,2,3,4];
count
-------
2
(1 row)

Time: 135.185 ms
postgres=# select count(*) from tags_test where tags @>array[1,2,3];
count
-------
190
(1 row)

Time: 123.327 ms
当然,实际情况下标签肯定不是随机分布的,可能会更快或者更慢,也可以试试用 jsonb 来存和查,结果应该差不多
2024-05-16 11:06:30 +08:00
回复了 1800x 创建的主题 Go 编程语言 有没有轻量级分布式消息队列
nats jetstream 只有 6 大概没有其他全符合
数据的话,用数据库原生的 publish 、subscribe 是最简单最优的,但是不能自动同步 DDL ,发生 DDL 后需要先在从库中更新 DDL 再继续订阅
2024-05-16 10:18:13 +08:00
回复了 freewind 创建的主题 数据库 请教多标签查询怎么做效率高?
你这样完全没用上索引,你这个场景,最好就使用 postgresql ,使用 array 或者 json 存 tags ,然后建立 GIN 索引,然后每次查询把标签和子标签组成目标 tags ,然后用 select * from xxx where tags @> ARRAY[tag1,tag2,tag3],就可以用上 GIN 索引,一个亿数据也没啥
2024-05-15 13:32:10 +08:00
回复了 qbmiller 创建的主题 Java 有 内嵌的简单 mysql 版本的 MQ 吗
也可以试试 nats jetstream ,部署极简单,可单机可集群,性能也很高
2024-05-15 11:49:18 +08:00
回复了 qbmiller 创建的主题 Java 有 内嵌的简单 mysql 版本的 MQ 吗
redis 也能当 mq 用啊
看来 oracle 的优化器和性能都是有点挫了,pg 下毫无问题
使用 postgresql 的 jsonb ,可以使用 copy 快速导入,可以使用 jsonpath 快速查询,可以使用各种 json 相关函数和 json 聚合函数快速编辑和处理,而这些都只需要 SQL
2024-04-24 17:12:00 +08:00
回复了 ihnfsa 创建的主题 云计算 自建数据湖方案
其实现在技术上几种数据糊技术核心的目的是解决传统 hadoop 系统中,parquet 等列存格式,难以支持 ACID 和事务的问题
2024-04-24 17:09:20 +08:00
回复了 ihnfsa 创建的主题 云计算 自建数据湖方案
数据糊技术显然是为了写入和低成本优化的,查询速度会慢的离谱(正常场景下),例如使用 apache hudi ,即使使用了记录级索引,在 1TB20 亿行数据中使用索引取一行也要 12 秒,取 40000 行要 115 秒(来源 https://hudi.apache.org/blog/2023/11/01/record-level-index/),这在 RAG 的场景中简直是离谱
2024-04-23 10:18:15 +08:00
回复了 ihnfsa 创建的主题 云计算 自建数据湖方案
开源数据糊一般是指 apache hudi 、apache iceberg 和 delta lake ,但这玩意儿都还是适合写入为主,偶尔批量计算的场景,不适合实时查询,和 AI Agent 、RAG 有啥关系?
find . -name '*.csv.gz' | xargs -I {} -P 4 bash -c "gzcat {} | psql -c 'copy test from stdin csv header'"
P 是并发,可以开高点
1  2  3  4  5  6  7  
关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   3158 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 26ms · UTC 11:34 · PVG 19:34 · LAX 03:34 · JFK 06:34
♥ Do have faith in what you're doing.