hypopg
ruby-pg
Our great sponsors
hypopg | ruby-pg | |
---|---|---|
6 | 9 | |
1,239 | 750 | |
13.1% | - | |
5.0 | 7.7 | |
7 days ago | 15 days ago | |
C | C | |
GNU General Public License v3.0 or later | GNU General Public License v3.0 or later |
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
ruby-pg
-
Test Driving a Rails API - Part One
If you installed Postgres via Homebrew, you need to configure bundler so that when it installs the pg gem, it knows where to find the pg_config executable, which is installed as part of Postgres. The pg gem is the Ruby interface to Postgres and requires pg_config during installation. We can use this command to configure bundler so that it can find it and successfully install pg.
-
It's not Ruby that's slow, it's your database
Before we proceed, are you aware that a lot of popular database drivers for Ruby (and Python? not sure) implement the performance-critical bits in good old natively compiled C?
For example, the Ruby postgres gem: https://github.com/ged/ruby-pg/tree/master/ext
(I wasn't sure until I checked just now, so I'm not questioning your familiarity with the tech. Just not sure if that's commonly known)
So no, it's not the database, it's your interpreted language.
-
Insert CSV Rows into a Database Using Vanilla Ruby
$ gem info pg *** LOCAL GEMS *** pg (1.3.4) Authors: Michael Granger, Lars Kanis Homepage: https://github.com/ged/ruby-pg License: BSD-2-Clause Installed at: /Users/jvon1904/.rvm/gems/ruby-3.0.3 Pg is the Ruby interface to the PostgreSQL RDBMS
- Explaining Ruby Fibers
-
Is it possible to lazy load a long text from the database?
The low level pg gem has support for Postgres streaming, but this is row-based. You're wanting to stream effectively from a single field, which Postgres won't do for you.
-
49 Days of Ruby: Day 31 - Working with Databases
The ruby-pg gem provides an interface between your Ruby code and your PostgreSQL database.
-
How to fix "Bundler::GemRequireError" and "Gem Load Error is: AddDllDirectory failed" when switching from Sqlite3 to Postgres in Rails 6
set RUBY_DLL_PATH=/bin as in our CI before running the ruby app.
-
Ruby 3.0 and the new FiberScheduler interface
> each is in its own OS thread and GVL releases when the thread blocks.
The GVL isn't automatically released when a thread blocks on IO. Each bit of native code performing IO has to explicitly release it like in the pg gem here: https://github.com/ged/ruby-pg/blob/fb465855ce1dd12cf7eb69c9...
What are some alternatives?
pev2 - Postgres Explain Visualizer 2
cubrid - CUBRID is a comprehensive open source relational database management system highly optimized for Web Applications.
sqlite-wf - Simple visual ETL tool
async-pool - Provides support for connection pooling both singleplex and multiplex resources.
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.
pymgclient - Python Memgraph Client
idx - maps, sets and vectors with on-demand secondary indexes.
libsmb2 - SMB2/3 userspace client
postgresql-unit - SI Units for PostgreSQL
pgslice - Postgres partitioning as easy as pie
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).
open62541 - Open source implementation of OPC UA (OPC Unified Architecture) aka IEC 62541 licensed under Mozilla Public License v2.0