Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Discourse 数据库重建索引

Discourse 数据库重建索引

作者头像
HoneyMoose
发布于 2025-02-11 03:52:45
发布于 2025-02-11 03:52:45
14200
代码可运行
举报
文章被收录于专栏:CWIKIUSCWIKIUS
运行总次数:0
代码可运行

在 Discourse 数据库进行升级后的主要特性就是对 Discourse 数据库中使用的索引进行优化。

Discourse 中的索引主要使用的是post_timings 表和数据库的索引。

当对数据库升级完成后,需要针对数据库运行下面的命令来对数据库的索引进行优化和重建。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd /var/discourse
./launcher enter app
su postgres
psql
\connect discourse
REINDEX SCHEMA CONCURRENTLY public;
\q
exit
exit

当完成上面的命令后,可以检查下 post_timings 的大小来查看数据库重构索引后的数据库数据大小变化。

2025-02-10_22-22-15
2025-02-10_22-22-15

也可以使用下面的命令来对数据库进行查询,下面的 SQL 查询将会返回你当前运行 Discourse 实例中 20 个最大的数据对象。

可以在索引重建之前和之后都运行下来比较大小。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
WITH RECURSIVE pg_inherit(inhrelid, inhparent) AS
    (select inhrelid, inhparent
    FROM pg_inherits
    UNION
    SELECT child.inhrelid, parent.inhparent
    FROM pg_inherit child, pg_inherits parent
    WHERE child.inhparent = parent.inhrelid),
pg_inherit_short AS (SELECT * FROM pg_inherit WHERE inhparent NOT IN (SELECT inhrelid FROM pg_inherit))
SELECT table_schema
    , TABLE_NAME
    , row_estimate
    , pg_size_pretty(total_bytes) AS total
    , pg_size_pretty(index_bytes) AS INDEX
    , pg_size_pretty(toast_bytes) AS toast
    , pg_size_pretty(table_bytes) AS TABLE
  FROM (
    SELECT *, total_bytes-index_bytes-COALESCE(toast_bytes,0) AS table_bytes
    FROM (
         SELECT c.oid
              , nspname AS table_schema
              , relname AS TABLE_NAME
              , SUM(c.reltuples) OVER (partition BY parent) AS row_estimate
              , SUM(pg_total_relation_size(c.oid)) OVER (partition BY parent) AS total_bytes
              , SUM(pg_indexes_size(c.oid)) OVER (partition BY parent) AS index_bytes
              , SUM(pg_total_relation_size(reltoastrelid)) OVER (partition BY parent) AS toast_bytes
              , parent
          FROM (
                SELECT pg_class.oid
                    , reltuples
                    , relname
                    , relnamespace
                    , pg_class.reltoastrelid
                    , COALESCE(inhparent, pg_class.oid) parent
                FROM pg_class
                    LEFT JOIN pg_inherit_short ON inhrelid = oid
                WHERE relkind IN ('r', 'p')
             ) c
             LEFT JOIN pg_namespace n ON n.oid = c.relnamespace
  ) a
  WHERE oid = parent
) a
ORDER BY total_bytes DESC LIMIT 20;   

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Zabbix系统中哪些会占用大量的磁盘空间?
本篇文章列出了在Zabbix中,哪些会占用大量的磁盘空间以及哪些监控项和主机对象消耗磁盘空间最多。
Zabbix
2021/09/08
1.4K0
PostgreSQL 常用SQL语句
PostgreSQL 可以说是目前功能最强大、特性最丰富和结构最复杂的开源数据库管理系统,其中有些特性甚至连商业数据库都不具备。这个起源于加州大学伯克利分校的数据库,现已成为一项国际开发项目,并且拥有广泛的用户群,尤其是在海外,目前国内使用者也越来越多。
YP小站
2020/06/04
1.3K0
PostgreSql Postgresql 监控你说了不算,谁说了算 ? (5 整理的一些脚本)
一写就写到了第五期,有点写连续剧的味道,可能会有第六期,我想是,今天的内容并不是某些工具,其实工具也是根据数据库的原理,通过各种方式获得数据。那怎么通过PG中的系统表来获得数据就是这期的重点。
AustinDatabases
2020/07/16
7540
PostgreSql  Postgresql 监控你说了不算,谁说了算 ? (5  整理的一些脚本)
Greenplum 元数据信息
Greenplum 元数据信息 Greenplum 元数据信息 1、 获取集群中数据库信息 1.1 集群中的创建的数据库信息 1.2 查看每个数据库的储存大小 1.3 查看集群中hostname 1.4 查看集群数据库的版本信息 1.5 查看集群master与segment安装的信息 2、 查看数据库下schema信息 2.1 查看数据库下创建的schema信息 2.2 查看数据库下每个schema的大小 3、 查看schema下表的信息 3.1 查看schema下的表的清单
小徐
2020/07/02
1.5K0
Greenplum 元数据信息
Greenplum数据库巡检报告
4.2.4 查看所有segment是否可达,确保QD(query dispatching)正常 16
小徐
2020/04/20
2.8K0
Greenplum数据库巡检报告
30个实用SQL语句,玩转PostgreSQL
PostgreSQL是一款功能非常强大的开源关系型数据库,它支持哈希索引、反向索引、部分索引、Expression 索引、GiST、GIN等多种索引模式,同时可安装功能丰富的扩展包。相较于Mysql,PostgreSQ支持通过PostGIS扩展支持地理空间数据、支持嵌套循环,哈希连接,排序合并三种表连接方式等一系列的强化功能。本文主要整理总结了30个实用SQL,方便大家可以高效利用PostgreSQL。
慕枫技术笔记
2023/03/20
8340
30个实用SQL语句,玩转PostgreSQL
Greenplum 操作锦囊
本文描述问题及解决方法基于 腾讯云数据仓库 TCHouse-P( Tencent Cloud House-P,TCHouse-P )。
岳涛
2023/11/08
1.6K1
Greenplum 操作锦囊
PostgreSQL查看表结构语句
在PG里面查看表结构,不如mysql那样show create table xx 这样方便。 
保持热爱奔赴山海
2022/11/14
4.6K0
Postgresql源码(32)vacuum freeze起始位点逻辑分析
https://blog.csdn.net/jackgo73/article/details/122700702
mingjie
2022/05/12
3380
Postgresql源码(32)vacuum freeze起始位点逻辑分析
Postgresql system Catalog 中的系统表能告诉你什么 (二)?
接上期,postgresql 的system catalog 中包含了不少系统表,
AustinDatabases
2021/04/01
7850
PostgreSQL技术大讲堂 - 第24讲:TOAST技术
PostgreSQL从小白到专家,是从入门逐渐能力提升的一个系列教程,内容包括对PG基础的认知、包括安装使用、包括角色权限、包括维护管理、、等内容,希望对热爱PG、学习PG的同学们有帮助,欢迎持续关注CUUG PG技术大讲堂。
用户5892232
2023/07/27
4440
PostgreSQL技术大讲堂 - 第24讲:TOAST技术
PostgreSQL 如何对索引进行分析和处理
最近有人私信问POSTGRESQL 怎么比MYSQL的索引大,这个问题升级上我个人觉得从这几点考虑
AustinDatabases
2023/09/06
4590
PostgreSQL 如何对索引进行分析和处理
PostgreSQL 扫盲贴 常用的监控分析脚本
我一直有一个错觉,大家的POSTGRESQL的技术都非常了得,在年前实际上对我有几次的感触。
AustinDatabases
2025/03/03
1460
PostgreSQL 扫盲贴 常用的监控分析脚本
Greenplum高级使用
stagging=#  select gp_segment_id,count(1) from  tablename  group by 1;
小徐
2019/01/28
1.6K1
Greenplum高级使用
[PostgreSQL] - 存储结构及缓存shared_buffers
包含三个文件, 具体介绍请看PostgreSQL目录结构之base目录,Free Space Map and Visibility Map:
夹胡碰
2022/07/30
2.9K0
[PostgreSQL] - 存储结构及缓存shared_buffers
数据库PostrageSQL-判断磁盘用量
每个表都有一个主要的堆磁盘文件,大多数数据都存储在其中。如果一个表有着可能会很宽(尺寸大)的列, 则另外还有一个TOAST文件与这个表相关联, 它用于存储因为太宽而不能存储在主表里面的值(参阅Section 68.2)。如果有这个附属文件,那么TOAST表上会有一个可用的索引。 当然,同时还可能有索引和基表关联。每个表和索引都存放在单独的磁盘文件里 — 如果文件超过 1G 字节,甚至可能多于一个文件。这些文件的命名原则在Section 68.1中描述。
cwl_java
2021/01/13
5030
MogDB/openGauss 故障排查思路
当我们收到反馈说数据库响应慢或者压测过程中数据库有报错,第一步先收集数据库服务器资源使用情况,这一步是处理所有故障的前提。
数据和云
2021/10/13
1.1K0
Postgresql常用运维指令记录
最近偶尔需要处理一些客户问题,这里记录更新下常用命令 OS tcpdump -i eth0 -s 0 -w s2_s.cap port 3006 strace -T -tt -e trace=all -p 21231 strace -T -tt -e trace=all -o file -p 21231 perf top --call-graph=fp --dsos=/data01/bin/pg1017/bin/postgres # Sample on-CPU functions for
mingjie
2022/05/12
7670
Postgresql INDEX HOT 原理与更好的 “玩转” INDEX
好长时间不进行研究了,最近被突发的问题想到了INDEX 的问题,随机想到数据和INDEX 存储在一起会怎样,我们将索引和数据进行分离后,会不会对数据库的性能有优化的可能。
AustinDatabases
2023/02/26
1.2K0
Postgresql  INDEX  HOT 原理与更好的 “玩转”  INDEX
统计PG数据库的库和表大小
转载地址: https://blog.csdn.net/rocklee/article/details/51251174
保持热爱奔赴山海
2019/09/17
1.4K0
相关推荐
Zabbix系统中哪些会占用大量的磁盘空间?
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档