PostgreSql 索引使用技巧

news/2024/7/9 21:22:13 标签: postgresql, 数据库

索引种类详情可参考《PostgreSql 索引》

一、适合创建索引的场景

  • 经常与其他表进行连接的表,在连接字段上应该建索引。
  • 经常出现在 WHERE 子句中的字段,特别是大表的字段,应该建索引。
  • 经常出现在 ORDER BY 子句中的字段,应该建索引。
  • 经常出现在 GROUP BY 子句中的字段,应该建索引。

二、不适合创建索引的场景

  • 特别小的表(数据小于1000行),不适合创建索引。
  • dml 操作频繁,查询操作很少的表,不适合创建索引。
  • 查询中很少使用的列,不适合创建索引。
  • 选择率太高的列(过滤后超过表总数据量30%),不适合创建索引。
  • 大的文本字段,不适合创建索引。
  • 存在复合索引时,不适合再创建单列索引(单列查询使用复合索引时,优先考虑最左原则)。

三、删除无用索引

查询数据库中未使用过的索引,确认业务确实用不上后可删除。

--查找未使用过的索引
select indexrelid::regclass as index_name,
relid::regclass as table_name
from pg_stat_user_indexes join pg_index
using(indexrelid)
where idx_scan = 0
and indisunique is false;

--删除未使用过的索引
select 'drop index "'||indexrelid::regclass||'";' as dropsql
from pg_stat_user_indexes join pg_index
using(indexrelid)
where idx_scan = 0
and indisunique is false;

http://www.niftyadmin.cn/n/5293020.html

相关文章

【水文】去除字符串中的字符

代码&#xff1a; #include <stdio.h>char *filter_ch(char *str, char ch){int i 0, j 0; // for pri string and new stringwhile (str[i]){if (str[i] ! ch){str[j] str[i];j;}i;}str[j] \0; // remember the \0return str; }int main() {char str[] "Hell…

spring-session升级之坑

项目场景&#xff1a; 因为某些组件低版本存在漏洞问题&#xff0c;本次对项目的springboot版本从1.x升级到了2.x&#xff0c;因为其他相关的中间件也随着一起升级&#xff0c;在升级最后发现项目用户信息无法获取到了。 问题描述 接口获取用户信息报错&#xff0c;获取用户信…

Python 实现 PDF 到 Word 文档的高效转换(DOC、DOCX)

PDF&#xff08;Portable Document Format&#xff09;已成为一种广泛使用的电子文档格式。PDF的主要优势是跨平台&#xff0c;可以在不同设备上呈现一致的外观。然而&#xff0c;当我们需要对文件内容进行编辑或修改&#xff0c;直接编辑PDF文件会非常困难&#xff0c;而且效果…

门诊实现在线缴费意义何在?医院/诊所该从众还是冷静?

随着科技的迅速发展&#xff0c;互联网已经深刻地改变了我们生活的方方面面&#xff0c;医疗行业也不例外。 在这个数字化的时代&#xff0c;网上挂号系统和在线缴费已成为现代医疗服务的重要部分。不仅优化了医疗服务流程&#xff0c;也提高患者就医便利性。 于是越来越多的医…

财务咨询公司为何要搭建自己的线上课程平台,而非入驻其他公域流量平台

明理信息科技线上课程平台 财务咨询公司为何要搭建自己的线上课程平台&#xff0c;而非入驻其他公域流量平台 随着数字化时代的到来&#xff0c;线上教育和学习已经成为越来越多人的选择。对于财务咨询公司来说&#xff0c;搭建自己的线上课程平台不仅可以更好地满足客户需求…

Romantic Glasses

Iulia把 n 个杯子排成一行。第i个杯子里有ai个单位的果汁。Iulia只喝奇数杯子的果汁&#xff0c;而她的约会对象只喝偶数杯子的果汁。 为了给约会对象留下深刻印象&#xff0c;Iulia想找到一个连续的杯子子阵列&#xff0c;这样&#xff0c;如果只考虑这个子阵列中的杯子&#…

什么是 async、await ?

async/await 是 JavaScript 中用于处理异步操作的一种语法糖。它们使得异步代码的编写和阅读更加简洁和直观。 具体来说&#xff0c;async 函数是一个返回 Promise 对象的函数&#xff0c;可以在函数内部使用 await 关键字来等待 Promise 对象的解析。await 关键字会暂停函数的…

JProfiler for Mac/win中文版:Java性能分析工具的首选

JProfiler是一款功能强大的Java性能分析工具&#xff0c;它可以帮助开发人员快速定位和解决应用程序中的性能问题。无论是在开发阶段还是在生产环境中&#xff0c;JProfiler都能提供全面的性能分析和优化功能。 首先&#xff0c;JProfiler提供了一系列强大的分析工具&#xff…