以下脚本可以工作,但不提供行数。
我确实尝试在此处找到答案并尝试更改它,但是由于某些原因,大多数示例/答案都使用了特定的表/数据库。
正如问题中所提到的,我想在所有数据库/表上都这样做。
import MySQLdb
import json
import os,sys
serv = MySQLdb.connect(host="localhost", user="host")
result = {}
c = serv.cursor()
c.execute("SHOW DATABASES")
l = c.fetchall()
col_names = []
for db_name in l:
name = db_name[0]
c.execute("USE %s;" % name)
c.execute("SHOW TABLE STATUS;")
for desc in c.description:
result.setdefault(desc[0], None)
col_names.append(desc[0])
print(result)
答案 0 :(得分:0)
使用INFORMATION_SCHEMA
元数据库获取所有数据库中所有表的行数。
import MySQLdb
serv = MySQLdb.connect(host="localhost", user="host", db="INFORMATION_SCHEMA")
c = serv.cursor()
c.execute("select table_schema, table_name, table_rows from tables")
l = c.fetchall()
print(l)
输出(已截断和重新格式化)
...
('mysql', 'slow_log', 2),
('mysql', 'columns_priv', 0),
('mysql', 'time_zone_transition_type', 0),
('mysql', 'tables_priv', 0),
('mysql', 'column_stats', 0),
('mysql', 'func', 0),
('mysql', 'innodb_index_stats', 2395),
('mysql', 'innodb_table_stats', 423),
('mysql', 'gtid_slave_pos', 0),
('mysql', 'proc', 2),
('mysql', 'time_zone_leap_second', 0),
('mysql', 'db', 3),
('mysql', 'help_topic', 508),
...