andatki

andatki

Author of High Performance PostgreSQL for Rails

High Performance PostgreSQL for Rails: "Is this useful for non Rails users?"

Roshan asked:

Is this useful for non Rails users?

As the author, I’m biased, but I think so. While all of the application code examples are in Ruby and Active Record, there are many types of code or configuration throughout the book that aren’t.

For example, there’s SQL, shell scripts, SQL Query functions, PL/pgSQL procedures, and native database objects like constraints, views, or cursors that readers work with.

Don’t take it from me though. :grin: How about these responses from readers that work primarily with other technologies:

Robert T. wrote:

Excited to see this hit the market. While Rails is in the title, don’t be put off if you work with something else; the Rails ecosystem provides a wealth of developer tooling and Ruby is an easily accessible language for studying, and the information can definitely be adapted to different domains.

Dave C. said:

​"A book with this information would’ve allowed me to shortcut several years off of learning Postgres the hard way."

Haki B. wrote (after reading portions of the book):

“It’s amazing how much Django and rails resemble each other.”

My estimation is the book is about 75% PostgreSQL and about 25% Ruby on Rails.

My hope is that the book is useful even for programmers that work with other MVC full-stack web frameworks like Django (Python) or Laravel (PHP). Those frameworks will have ORMs with some overlap with Active Record, and when they connect to PostgreSQL, may have some of the same challenges around writing high performance queries.

Other topics like schema design, indexing, or maintenance, all have less to do with specific web frameworks or programming languages.

I also discussed with Drew Bragg on the podcast “Code and the Coding Coders who Code it Episode 27 - Andrew Atkinson” at the 33:50 mark:
https://www.listennotes.com/podcasts/code-and-the/episode-27-andrew-atkinson-0uJ_Yc82Npv/

While I originally considered positioning the book more broadly as something like: “PostgreSQL for Web Developers”, I didn’t think that would work out as well.

The main reason was because I wanted to have lots of concrete examples and exercises, inspired by my career experience from working with Ruby on Rails and PostgreSQL over the last decade.

To do that, the book uses more than 40 libraries from the broader ecosystem, as PostgreSQL extensions and Ruby gems. Most (not all) of the open source libraries that are included are there because I have firsthand experience using them in production. It felt more authentic to stick with what I knew best and have put into production and maintained myself. For libraries where that’s not the case, I try and call that out.

Hope that helps! Thanks for your interest!

book-high-performance-postgresql-for-rails

First Post!

andatki

andatki

Author of High Performance PostgreSQL for Rails

Where Next?

Popular Pragmatic Bookshelf topics Top

jimmykiang
This test is broken right out of the box… — FAIL: TestAgent (7.82s) agent_test.go:77: Error Trace: agent_test.go:77 agent_test.go:...
New
jesse050717
Title: Web Development with Clojure, Third Edition, pg 116 Hi - I just started chapter 5 and I am stuck on page 116 while trying to star...
New
raul
Hi Travis! Thank you for the cool book! :slight_smile: I made a list of issues and thought I could post them chapter by chapter. I’m rev...
New
New
jskubick
I think I might have found a problem involving SwitchCompat, thumbTint, and trackTint. As entered, the SwitchCompat changes color to hol...
New
brunogirin
When I run the coverage example to report on missing lines, I get: pytest --cov=cards --report=term-missing ch7 ERROR: usage: pytest [op...
New
AufHe
I’m a newbie to Rails 7 and have hit an issue with the bin/Dev script mentioned on pages 112-113. Iteration A1 - Seeing the list of prod...
New
tkhobbes
After some hassle, I was able to finally run bin/setup, now I have started the rails server but I get this error message right when I vis...
New
bjnord
Hello @herbert ! Trying to get the very first “Hello, Bracket Terminal!" example to run (p. 53). I develop on an Amazon EC2 instance runn...
New
dachristenson
I just bought this book to learn about Android development, and I’m already running into a major issue in Ch. 1, p. 20: “Update activity...
New

Other popular topics Top

PragmaticBookshelf
Write Elixir tests that you can be proud of. Dive into Elixir’s test philosophy and gain mastery over the terminology and concepts that u...
New
brentjanderson
Bought the Moonlander mechanical keyboard. Cherry Brown MX switches. Arms and wrists have been hurting enough that it’s time I did someth...
New
DevotionGeo
I know that -t flag is used along with -i flag for getting an interactive shell. But I cannot digest what the man page for docker run com...
New
AstonJ
I ended up cancelling my Moonlander order as I think it’s just going to be a bit too bulky for me. I think the Planck and the Preonic (o...
New
AstonJ
Do the test and post your score :nerd_face: :keyboard: If possible, please add info such as the keyboard you’re using, the layout (Qw...
New
Exadra37
Oh just spent so much time on this to discover now that RancherOS is in end of life but Rancher is refusing to mark the Github repo as su...
New
AstonJ
This is a very quick guide, you just need to: Download LM Studio: https://lmstudio.ai/ Click on search Type DeepSeek, then select the o...
New
NewsBot
Node.js v22.14.0 has been released. Link: Release 2025-02-11, Version 22.14.0 'Jod' (LTS), @aduh95 · nodejs/node · GitHub
New
PragmaticBookshelf
Use advanced functional programming principles, practical Domain-Driven Design techniques, and production-ready Elixir code to build scal...
New
pragdave
Build robust LLM-powered apps, chatbots, and agents while mastering AI engineering principles that will help you outlast the tools and th...
New

Sub Categories: