hypopg
pev2
Our great sponsors
hypopg | pev2 | |
---|---|---|
6 | 40 | |
1,239 | 2,363 | |
13.1% | 3.4% | |
5.0 | 7.7 | |
9 days ago | 10 days ago | |
C | TypeScript | |
GNU General Public License v3.0 or later | PostgreSQL License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
hypopg
-
Show HN: PostgreSQL Index Advisor
It works particularly well with pg_stat_statements[0] which tracks execution statistics of all SQL statements executed on your Postgres database.
It leans heavily on HypoPG[1], an excellent extension to determine if PostgreSQL will use a given index without spending resources to create them.
[0] pg_stat_statements: https://www.postgresql.org/docs/current/pgstatstatements.htm...
[1] https://github.com/HypoPG/hypopg
-
YugabyteDB hypopg: hypothetical indexes
This is an introduction to the hypopg PostgreSQL extension for YugabyteDB 2.15.3.0. Hypopg allows the creation of hypothetical indexes, so indexes that do not really exist. This means this allows you to see what an index would do if it were created, without it actually being created, and therefore not influencing anything on the database. YugabyteDB 2.15.3.0 is a preview version of the YugabyteDB database.
- The SQLite Index Suggester
-
Why Can't Database Tables Index Themselves?
There's a lot of good ecosystem stuff around this:
https://github.com/HypoPG/hypopg
HypoPG is a PostgreSQL extension adding support for hypothetical indexes.
An hypothetical -- or virtual -- index is an index that doesn't really exists, and thus doesn't cost CPU, disk or any resource to create. They're useful to know if specific indexes can increase performance for problematic queries, since you can know if PostgreSQL will use these indexes or not without having to spend resources to create them.
With one approach to using it here: https://www.percona.com/blog/2019/07/22/automatic-index-reco...
- Postgres Indexes for Newbies
- PostgreSQL Explain Output Explained
pev2
-
Retrieving the latest row per group from PostgreSQL
This runs in about 250ms. Let's have a look at the explain plan to understand it better. To visualise it, I am using the excellent visualisation tool from Dalibo.
-
Pg_hint_plan: Force PostgreSQL to execute query plans how you want
The PEV2 is open source and give you a good visualization. I never used this pgmustard to compare.
https://explain.dalibo.com/
-
Efficient Database Queries in Rails: A Practical Approach
Visualize Your Plan: Visit explain.dalibo.com and paste the generated plan text and query. Then, hit Submit. The tool will generate a visualization of your query plan. Here's an example of the visualization for the fifth attempt version of the query from this post. It shows the different types of scans that were used and how the data gets combined. The duration of each operation is also shown:
-
What's new in the Postgres 16 query planner (a.k.a. optimizer)
You can download the whole analyzer as a simple html file and use it this way. No need to obfuscate or sanitize anything at all.
https://github.com/dalibo/pev2
- Visualizing and understanding PostgreSQL EXPLAIN plans made easy
- Don't use DISTINCT as a "join-fixer"
-
When should you use the IN instead of the OR operator in Postgres queries?
You might be interested in sites like https://explain.dalibo.com/ which make the output a bit nicer to read. I use these quite often to quickly identify bottlenecks.
-
200 Web-Based, Must-Try Web Design and Development Tools
PostgreSQL Query Plan Analyzer and Visualizer
-
Do you use pgAdmin? Why?
I didn’t know about pev2, interesting, checking it now. Did you integrate the component yourself or are you using this hosted page by them: https://explain.dalibo.com/?
-
Tuning DB
IMO it‘s important to get started with indexing. Grab your most frequently used queries and run an EXPLAIN ANALYZE to identify the problems. This tool might help you to understand your execution plans. Once you identified your problems, you can build indexes and check again. Then you should regularly check if your indexes are used.
What are some alternatives?
ruby-pg - A PostgreSQL client library for Ruby
TypeORM - ORM for TypeScript and JavaScript. Supports MySQL, PostgreSQL, MariaDB, SQLite, MS SQL Server, Oracle, SAP Hana, WebSQL databases. Works in NodeJS, Browser, Ionic, Cordova and Electron platforms.
sqlite-wf - Simple visual ETL tool
awesome-db-tools - Everything that makes working with databases easier
orafce - The "orafce" project implements in Postgres some of the functions from the Oracle database that are missing (or behaving differently).Those functions were verified on Oracle 10g, and the module is useful for production work.
pev - Postgres Explain Visualizer
idx - maps, sets and vectors with on-demand secondary indexes.
sysbench - Scriptable database and system performance benchmark
postgresql-unit - SI Units for PostgreSQL
yugabyte-db - YugabyteDB - the cloud native distributed SQL database for mission-critical applications.
plpgsql_check - plpgsql_check is a linter tool (does source code static analyze) for the PostgreSQL language plpgsql (the native language for PostgreSQL store procedures).
octosql - OctoSQL is a query tool that allows you to join, analyse and transform data from multiple databases and file formats using SQL.