postgresql-performance相关内容
我已经使用PostgreSQL和mental copg2构建了一个小型库存系统。一切都运行得很好,除了当我想要创建内容的聚合摘要/报告时,由于count()和排序,我得到的性能非常差。 数据库架构如下: CREATE TABLE hosts ( id SERIAL PRIMARY KEY, name VARCHAR(255) ); CREATE TABL
..
我定义了下表和索引: CREATE TABLE ticket ( wid bigint NOT NULL DEFAULT nextval('tickets_id_seq'::regclass), eid bigint, created timestamp with time zone NOT NULL DEFAULT now(), status integer NOT NUL
..
我在 postgresql 中有一个表,其中包含一个不断更新的数组. 在我的应用程序中,我需要获取该数组列中不存在特定参数的行数.我的查询如下所示: 选择计数(id)从表哪里不是 (ARRAY['参数值']
..
我们需要计算 PostgreSQL 表中的行数.在我们的例子中,不需要满足任何条件,如果能显着提高查询速度,那么获得行估计是完全可以接受的. 基本上,我们希望 select count(id) from 尽可能快地运行,即使这意味着无法获得准确的结果. 解决方案 快速估算: SELECT reltuples FROM pg_class WHERE relname = 'my_ta
..
我需要帮助优化使用 BETWEEN 子句和 timestamp 字段的 PostgreSQL 查询. 我有两张桌子: ONE(int id_one(PK), datetime cut_time, int f1 . . .) 包含大约 3394 行 TWO(int id_two(PK), int id_one(FK), int f2 . . .) 包含大约 4000000 行 在
..
查询: SELECT "replays_game".*来自“replays_game"内部联接"replays_playeringame" ON "replays_game"."id" = "replays_playeringame"."game_id"WHERE "replays_playeringame"."player_id" = 50027 如果我设置 SET enable_seqsc
..
以下是我的查询.我试图让它使用索引扫描,但它只会 seq 扫描. 顺便说一下,metric_data 表有 1.3 亿行.metrics 表大约有 2000 行. metric_data 表列: metric_id 整数, t 时间戳, d 双精度, PRIMARY KEY (metric_id, t) 如何让这个查询使用我的 PRIMARY KEY 索引? SELECTS.m
..
我有一张表 bsort: CREATE TABLE bsort(a int, data text); 此处data 可能不完整.换句话说,有些元组可能没有 data 值. 然后我在表上建立一个b-tree索引: 使用 BTREE(a) 在 bsort 上创建索引; 现在,如果我执行此查询: SELECT * FROM bsort ORDER BY a; PostgreSQL 是对
..
我有一个包含 3 个字段的 postgres 表: a:postgis 几何 b : 数组 varchar[] c : 整数 我有一个涉及所有这些的查询.我想添加一个多列索引来加快速度,但我不能,因为这 3 个字段因其性质而不能归入同一索引. 这种情况下的策略是什么?添加3个索引gist,gin和btree,postgres会在查询时全部使用吗? 解决方案 单列索引
..
我在这里有一个星型模式,我正在查询事实表并想加入一个非常小的维度表.我无法真正解释以下内容: 解释分析选择COUNT(impression_id), imp.os_idFROM bi.impressions impGROUP BY imp.os_id;查询计划---------------------------------------------------------------------
..
我定义了下表和索引: CREATE TABLE 票证(wid bigint NOT NULL DEFAULT nextval('tickets_id_seq'::regclass),开斋节,创建时间戳与时区 NOT NULL DEFAULT now(),状态整数 NOT NULL DEFAULT 0,argsxml 文本,模块id字符变化(255),source_id bigint,file_t
..
我需要从我的 PG 数据库中删除大约 200 万行.我有一个需要删除的 ID 列表.但是,我尝试这样做的任何方式都需要几天时间. 我尝试将它们放在一个表中,并以 100 为一组进行.4 天后,这仍然在运行,仅删除了 297268 行.(我必须从 ID 表中选择 100 个 ID,删除该列表中的 where,从 ids 表中删除我选择的 100 个). 我试过了: DELETE F
..
我想为我编写的每个单元测试运行一个仅在内存中运行的小型 PostgreSQL 数据库.例如: @Before无效设置(){字符串端口 = runPostgresOnRandomPort();connectTo("postgres://localhost:"+port+"/in_memory_db");//...} 理想情况下,我会将单个 postgres 可执行文件签入版本控制,单元测试将使用
..
我需要在表中创建相似字符串的排名. 我有下表 创建表名(名称字符变化(255)); 目前,我正在使用提供 similarity 功能的 pg_trgm 模块,但我遇到了效率问题.我创建了一个索引,如 Postgres 手册建议: CREATE INDEX trgm_idx ON names USING gist (name gist_trgm_ops); 我正在执行以下查询: se
..
如果我想以递减的精度搜索表中的单行怎么办,例如像这样: SELECT * FROM image WHERE name LIKE 'text' AND group_id = 10 LIMIT 1 当这没有结果时,试试这个: SELECT * FROM image WHERE name LIKE 'text' LIMIT 1 当这没有结果时,试试这个: SELECT * FROM image
..
我在使用 PostgreSQL 8.4.9 进行查询的 PostgreSQL 性能方面有一个奇怪的问题.此查询选择 3D 体积内的一组点,使用 LEFT OUTER JOIN 在存在相关 ID 的位置添加相关 ID 列.x 范围内的微小变化都会导致 PostgreSQL 选择不同的查询计划,执行时间从 0.01 秒到 50 秒不等.这是有问题的查询: SELECT treenode.id AS
..
根据PostgreSQL 文档,它们支持字符数据的 3 种数据类型: character variables (n), varchar(n) 可变长度有限制character(n), char(n) 固定长度,空白填充文本变量无限长度 在我的应用程序中,我遇到了一些令人不快的情况,其中插入/更新查询失败,因为要插入的所需文本超过了 varchar(n) 或 char(n) 限制. 对于这
..
我在 Postgres 9.2 中有以下用户消息日志表(简化形式): 创建表日志(日志日期日期,用户 ID 整数,有效载荷整数); 每个用户每天最多包含一条记录.在 300 天内每天将有大约 50 万条记录.每个用户的有效负载都在不断增加(如果这很重要). 我想在特定日期之前有效地检索每个用户的最新记录.我的查询是: SELECT user_id, max(log_date), max
..
这个问题是关于first_value()的功能的a>,使用其他函数或解决方法. 这也是关于大表中的“性能略有提高".使用例如.max() 在下面解释的上下文中,需要虚假比较.即使速度很快,也会产生一些额外的成本. 这个典型的查询 SELECT x, y, count(*) as n从T按 x, y 分组; 需要重复GROUP BY中的所有列以返回不止一列.这样做的语法糖是使用位置引
..
我想从某个日期每天构建一个时间序列并计算每天的一些统计数据.但是这个查询很慢......有什么办法可以加快速度吗?(例如,在子查询中选择一次表并计算该表每天的各种统计数据). 在代码中这看起来像 for i,连续一天:previous_days = 系列[0...i]some_calculation_a = some_operation_on(previous_days)some_calc
..