How to track and log slow queries in Ruby on Rails applications? ruby

How to track and log slow queries in Ruby on Rails applications?

Slow SQL queries in Rails can be caught in development, before they become production fires. Using ActiveSupport::Notifications and the sql.active_record event, you build a small performance guard that logs every query above a time threshold straight to your console.

Jul 24, 2025

Database shrading and database partitioning in Rails

Database shrading and database partitioning in Rails

Database sharding in Rails step by step: create a separate database per shard, wire them up in database.yml, and query across them. Plus how sharding differs from partitioning, with a native PostgreSQL partitioning example done through Rails migrations.

Rails eager_load, joins and includes - when to use what

Rails eager_load, joins and includes - when to use what

Rails eager_load, includes, preload, and joins each fight slow queries differently: LEFT OUTER JOIN versus separate queries, how includes picks its strategy, and when a plain joins is enough. Clear examples showing which loading method to choose for each situation.

Solutions for const and enums per class in Ruby

Solutions for const and enums per class in Ruby

Three ways to define constants and enums per class in Ruby: the ActiveRecord enum macro, a mixed style combining frozen constants with enum, and a dependency-free PORO version. Code for each solution and a comparison to help you pick the right one.

Why callbacks are bad in Rails models

Why callbacks are bad in Rails models

ActiveRecord callbacks bring tight coupling, slower transactions, and painful debugging. Why before_save and after_save hooks in Rails models cause trouble, and how replacing them with an explicit process class makes the same flow readable and easy to debug.