SELECT COUNT(TABLE_NAME) AS table_count
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'db_name';
SELECT TABLE_TYPE, COUNT(*) AS cnt
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'db_name'
GROUP BY TABLE_TYPE;
information_schema.TABLES 讀取元數據鎖,大量表(萬張以上)查詢可能阻塞 DDL,建議:
AND TABLE_TYPE='BASE TABLE' 僅統計基表。SHOW TABLE STATUS 配合緩存。