简体   繁体   中英

Find Table with maximum number of rows in a database in mysql

As the question title suggests, I want to find the table having maximum number of rows (entries) in a particular database. I have been able to extract the names of all the tables in a particular database using the query below.

SELECT TABLE_NAME
FROM information_schema.tables
WHERE TABLE_SCHEMA="Some_Database";

How do I proceed beyond this?? I have been trying to formulate a nested query for the above purpose but couldn't come up with something (I am not very comfortable with them). Please Help.

EDIT: As given in this link the table_rows field does not give an accurate result. That is why I need to do something like a MAX (Count(*)) for each table.

Try this one......

SELECT TABLE_NAME,MAX(TABLE_ROWS)
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = "DB_Name";

OR

please try the following two queries for actual result.

query 1:

SELECT CONCAT('SELECT COUNT(*) as cnt FROM ', table_name, ' union all') 
      FROM information_schema.tables WHERE table_schema = 'your_db_name';

query 2:

select max(cnt) from (paste the result of first query and remove 
last union all keyword) as tmptable;

What about this:

SELECT TABLE_NAME
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = "Some_Database"
ORDER BY TABLE_ROWS DESC
LIMIT 1;

information_schema.tables has a column named table_rows , so:

SELECT   table_name 
FROM     information_schema.tables 
WHERE    table_schema = 'Some_Database'
ORDER BY table_rows DESC
LIMIT    1;

We can obtain the table name having max number of rows in MySQL using the this query

SELECT  
TABLE_NAME,MAX(TABLE_ROWS)
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'DB_Name'
GROUP BY TABLE_NAME ORDER BY MAX(TABLE_ROWS) DESC LIMIT 1;

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM