Basic metric information for views I would like to output some basic metric information about my MySQL database.  Such as the names and number of rows for all tables and views in a given database.  Tables are no problem as I simply have to query the information_schema.tables.table_rows, but views pose a different problem as most all it's results are all NULL in information_schema.tables.

Does anyone have a good method besides writing a procedure that queries each view each time it is called?  To do so each time is highly inefficient.  I would assume the database engine would store this information for performance reasons.
Views do not store any data, they are no more than saved queries. Subsequently, the question "how many rows are there in the view" is equivalent to "how may rows does the query return", to answer which you by definition have to execute the query.

When querying a view, the optimizer will determine the query cost by looking up statistics of the view's underlying tables.