eladmeidar / rails_indexes

A rake task to track down missing database indexes. does not assume that all foreign keys end with the convention of _id.
http://blog.eizesus.com/2009/9/find-where-to-index-your-tables-on-a-rails-app/
MIT License
490 stars 35 forks source link

h1. DEPRECATED

This gem doesn't really work on Rails 4 - no plans on upgrading it anyway. you probably should take a look at "lol_dba":https://github.com/plentz/lol_dba

h1. Rails Indexes

Rails indexes is a small package of 2 rake tasks that scan your application models and displays a list of columns that probably should be indexed.

Note: there may be more fields depending on your application design and custom queries.

h2. Rails 3.x and 4.x

If you're using Rails 3.x or 4.x, you probably should take a look at "lol_dba":https://github.com/plentz/lol_dba

h2. Installation

as a rails plugin:

script/plugin install git://github.com/eladmeidar/rails_indexes.git

h2. Usage

Display a migration for adding/removing all necessary indexes based on associations:

rake db:index_migration

Display a migration for adding/removing all necessary indexes based on AR::Base#find calls (including: find, find_by, find_all_by, find_by_x_and_y, find_all_by_x_and_y):

rake db:find_query_indexes

Note that it would probably make more sense running those tasks on production, where you actually need those indexes to be added.

h2. Tests

Requires SQLite3 installed, then just:

rake

to run the tests

h4. Author:

Elad Meidar - "http://blog.eizesus.com":http://blog.eizesus.com

Thanks: Eric Davis - "http://littlestreamsoftware.com":http://littlestreamsoftware.com

Released under the same license as Ruby. No Support. No Warranty, no Pain.