Checking database size by row count

Updated . Posted . Visible to the public.

As an application exists, data accumulates. While you'll be loosely monitoring the main models' record count, some supportive database tables may grow unnoticed.

To get a quick overview of database table sizes, you can view the row count like this:

PostgreSQL

SELECT schemaname,relname,n_live_tup 
FROM pg_stat_user_tables 
ORDER BY n_live_tup DESC
LIMIT 12;

 schemaname |                    relname                     | n_live_tup 
------------+------------------------------------------------+------------
 public     | images                                         |      17025
 public     | items                                          |      16918
 public     | tree_nodes                                     |       5018
 public     | page_versions                                  |       4049
 public     | pages                                          |       3919

Please note that this does not work reliably on database slaves Show archive.org snapshot .

MySQL

SELECT table_name, table_rows
FROM information_schema.tables
WHERE table_schema = (SELECT database())
ORDER BY table_rows DESC
LIMIT 12;

+---------------------+------------+
| table_name          | table_rows |
+---------------------+------------+
| addresses           |      48106 |
| orders              |      33740 |
| users               |       8703 |
| ...

If you're interested in the space a table takes up on the disk check table sizes by disk usage instead.

Connect to a Rails database with bin/rails dbconsole -p.

Dominik Schöler
Last edit
Dominik Schöler
License
Source code in this card is licensed under the MIT License.
Posted by Dominik Schöler to makandra dev (2019-10-11 06:53)