I have to find the top 10 tables for each databases from INFORMATION_SCHEMA.TABLES using a single query. The query i used gives total top 10 tables for all the databases, but i need top 10 for each databases
mysql> SELECT TABLE_SCHEMA, TABLE_NAME, IFNULL(SUM(data_length+index_length),0) AS size_byt, IFNULL(SUM(data_length),0) AS data_size_byt, IFNULL(SUM(index_length),0) AS index_size_byt, IFNULL(SUM(table_rows),0)
AS row_count FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA in (select schema_name FROM information_schema.schemata) GROUP BY table_name,TABLE_SCHEMA ORDER BY size_byt DESC LIMIT 10;
+--------------+----------------------------+----------+---------------+----------------+-----------+
| TABLE_SCHEMA | TABLE_NAME | size_byt | data_size_byt | index_size_byt | row_count |
+--------------+----------------------------+----------+---------------+----------------+-----------+
| mysql | innodb_index_stats | 22675456 | 22675456 | 0 | 87679 |
| mysql | innodb_table_stats | 2637824 | 2637824 | 0 | 11252 |
| mysql | help_topic | 1687552 | 1589248 | 98304 | 977 |
| db2654db | WM_NOTIFICATION_ATTRIBUTES | 1589248 | 1589248 | 0 | 4328 |
| db2328db | WM_NOTIFICATION_ATTRIBUTES | 1589248 | 1589248 | 0 | 4276 |
| db3015db | WM_NOTIFICATION_ATTRIBUTES | 1589248 | 1589248 | 0 | 4650 |
| db3011db | WM_NOTIFICATION_ATTRIBUTES | 1589248 | 1589248 | 0 | 5662 |
| db2725db | WM_NOTIFICATION_ATTRIBUTES | 1589248 | 1589248 | 0 | 4422 |
| db2530db | WM_NOTIFICATION_ATTRIBUTES | 1589248 | 1589248 | 0 | 4070 |
| db2721db | WM_NOTIFICATION_ATTRIBUTES | 1589248 | 1589248 | 0 | 4045 |
+--------------+----------------------------+----------+---------------+----------------+-----------+
10 rows in set (1.17 sec)